package a.j;

import a.c.d;
import a.c.e;
import a.c.k;
import a.c.m;
import a.f.o;
import a.f.zc;
import a.i.lb;
import a.i.nb;
import a.j.b.f;

import java.awt.*;
import java.awt.geom.Rectangle2D;
import java.util.*;
import java.util.List;

public class z
  extends w
{
  private Set m;
  private Set n;
  private k o;
  private List p;
  private List q;
  private static final double r = 10.0D;
  private static final double s = 20.0D;
  private boolean t;
  private boolean u = true;
  private double v;
  private double w = -1.0D;
  private double x;
  private boolean y;
  private boolean z = true;
  private lb A;
  private lb B;
  private boolean C;
  private boolean D;
  private Set E;
  private boolean F = true;
  private boolean G = true;
  private ArrayList H;
  private boolean I;
  private boolean J;
  private static final boolean K = true;
  private double L = 40.0D;
  private Collection M;
  private Collection N;
  private boolean O = true;
  private boolean P;
  private double Q = 10.0D;
  public static final byte R = 0;
  public static final byte S = 1;
  public static final byte T = 2;
  public static final byte U = 3;
  private static final double V = 60.0D;
  public static boolean W;
  
  public z()
  {
    this(null);
  }
  
  public z(pg parampg)
  {
    super(parampg);
  }
  
  public boolean n()
  {
    return this.J;
  }
  
  public double o()
  {
    return this.L;
  }
  
  public void b(double paramDouble)
  {
    this.L = paramDouble;
  }
  
  public boolean p()
  {
    return this.G;
  }
  
  public void b(boolean paramBoolean)
  {
    this.G = paramBoolean;
  }
  
  public boolean q()
  {
    return this.I;
  }
  
  public void c(boolean paramBoolean)
  {
    this.I = paramBoolean;
  }
  
  public boolean r()
  {
    return this.F;
  }
  
  public void d(boolean paramBoolean)
  {
    this.F = paramBoolean;
  }
  
  public boolean s()
  {
    return this.D;
  }
  
  public void e(boolean paramBoolean)
  {
    this.D = paramBoolean;
  }
  
  public boolean t()
  {
    return this.C;
  }
  
  public void f(boolean paramBoolean)
  {
    this.C = paramBoolean;
  }
  
  public boolean u()
  {
    return this.z;
  }
  
  public void g(boolean paramBoolean)
  {
    this.z = paramBoolean;
  }
  
  public boolean v()
  {
    return this.y;
  }
  
  public void h(boolean paramBoolean)
  {
    this.y = paramBoolean;
  }
  
  public double w()
  {
    return this.x;
  }
  
  public void c(double paramDouble)
  {
    this.x = paramDouble;
  }
  
  public double x()
  {
    return this.v;
  }
  
  public void d(double paramDouble)
  {
    this.v = paramDouble;
  }
  
  public double y()
  {
    return this.w;
  }
  
  public void e(double paramDouble)
  {
    this.w = paramDouble;
  }
  
  public boolean z()
  {
    return this.t;
  }
  
  public void i(boolean paramBoolean)
  {
    this.t = paramBoolean;
  }
  
  public boolean A()
  {
    return this.u;
  }
  
  public void j(boolean paramBoolean)
  {
    this.u = paramBoolean;
  }
  
  public boolean B()
  {
    return this.P;
  }
  
  public void k(boolean paramBoolean)
  {
    this.P = paramBoolean;
  }
  
  public double C()
  {
    return this.Q;
  }
  
  public void f(double paramDouble)
  {
    this.Q = paramDouble;
  }
  
  public void a(a.d.w paramw, Collection paramCollection1, Collection paramCollection2, Collection paramCollection3, k paramk)
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    super.h();
    a(paramw);
    this.m = new HashSet(paramCollection1);
    this.n = new HashSet(paramCollection2.size());
    this.M = paramCollection2;
    this.N = paramCollection3;
    Object localObject = paramCollection2.iterator();
    if (((Iterator)localObject).hasNext()) {}
    do
    {
      r_ localr_ = (r_)((Iterator)localObject).next();
      this.n.add(localr_.e());
      if (bool2) {
        break label249;
      }
      if (bool1) {
        break label240;
      }
      if (!bool1) {
        break;
      }
      this.o = paramk;
      this.E = new HashSet(Math.max(32, d().a().j() - paramCollection1.size()));
      a(paramCollection1, this.E);
      this.p = new ArrayList();
      this.q = new ArrayList();
      b(this.p, this.q);
      this.A = new lb();
      this.B = new lb();
      D();
      G();
    } while (bool2);
    F();
    label240:
    if (!bool2) {
      if (this.P)
      {
        label249:
        localObject = b(paramw, paramCollection1, paramCollection2, paramCollection3, paramk);
        if (bool2) {
          return;
        }
        if (localObject != null) {
          a((ve)localObject);
        }
      }
    }
    this.J = true;
  }
  
  public void g()
  {
    super.g();
    this.J = false;
    this.m = null;
    this.n = null;
    this.o = null;
    this.M = null;
    this.N = null;
    this.p = null;
    this.q = null;
    this.E = null;
    this.H = null;
    this.A = (this.B = null);
  }
  
  protected ve b(a.d.w paramw, Collection paramCollection1, Collection paramCollection2, Collection paramCollection3, k paramk)
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    if ((bool2) || ((paramCollection1.isEmpty()) && (paramCollection2.isEmpty()))) {
      return null;
    }
    ArrayList localArrayList = new ArrayList();
    Iterator localIterator = paramCollection1.iterator();
    Object localObject;
    do
    {
      do
      {
        if (!localIterator.hasNext()) {
          break;
        }
        localObject = (e)localIterator.next();
        g localg = (g)((e)localObject).g();
        a.d.w localw = localg.o((e)localObject);
        localArrayList.add(new j_(localw, localg.s((e)localObject), localg.t((e)localObject)));
        if ((!bool2) && (bool1)) {
          break label225;
        }
      } while (!bool1);
      if (bool2) {
        break;
      }
    } while (bool2);
    if (paramCollection1.isEmpty())
    {
      localIterator = paramCollection2.iterator();
      if (!localIterator.hasNext()) {}
    }
    label225:
    while (bool2)
    {
      localObject = (r_)localIterator.next();
      localArrayList.add(new j_(((r_)localObject).a(), ((r_)localObject).d(), ((r_)localObject).c(), 1.0D, 1.0D));
      if (!bool1) {
        break;
      }
    }
    return new ab_(1.0D, d(), this.Q, paramw, localArrayList);
  }
  
  private void D()
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    if (!this.F) {
      return;
    }
    HashSet localHashSet = new HashSet(Math.min(32, this.n.size()));
    HashMap localHashMap1 = new HashMap(this.n.size());
    HashMap localHashMap2 = new HashMap(this.N.size());
    a(localHashMap1, localHashMap2, localHashSet);
    g localg = d().a();
    Iterator localIterator = localHashSet.iterator();
    label264:
    label332:
    label462:
    do
    {
      int i;
      q_ localq_;
      Object localObject;
      double d1;
      double d2;
      do
      {
        if (!localIterator.hasNext()) {
          break;
        }
        d locald = (d)localIterator.next();
        tb localtb = localg.t(locald);
        q_[] arrayOfq_ = a(localtb, localHashMap1, localHashMap2);
        i = 1;
        do
        {
          do
          {
            do
            {
              if (i >= arrayOfq_.length) {
                break;
              }
              localq_ = arrayOfq_[(i - 1)];
              localObject = arrayOfq_[i];
              d1 = localq_.a().a - ((q_)localObject).a().a;
              d2 = localq_.a().b - ((q_)localObject).a().b;
              if (bool1) {
                break label332;
              }
              if (!((q_)localObject).d())
              {
                if (bool2) {
                  break label264;
                }
                if (localq_.d()) {
                  this.A.a(new i_(l().a + d1, localq_, (q_)localObject));
                }
              }
              if (!bool2)
              {
                if (!((q_)localObject).c())
                {
                  if (bool2) {
                    continue;
                  }
                  if (localq_.c()) {
                    this.B.a(new i_(l().b + d2, localq_, (q_)localObject));
                  }
                }
                i++;
              }
            } while (!bool1);
          } while (bool2);
          i = arrayOfq_.length - 2;
          if (i < 1) {
            break;
          }
          localq_ = arrayOfq_[(i + 1)];
          localObject = (r_)arrayOfq_[i];
          d1 = localq_.a().a - ((r_)localObject).a().a;
          d2 = localq_.a().b - ((r_)localObject).a().b;
        } while (bool2);
      } while (bool1);
      if (!((r_)localObject).d())
      {
        if (bool2) {
          break label462;
        }
        if (localq_.d()) {
          this.A.a(new i_(l().a + d1, localq_, (q_)localObject));
        }
      }
      if (!bool2)
      {
        if (!((r_)localObject).c())
        {
          if (bool2) {
            continue;
          }
          if (localq_.c()) {
            this.B.a(new i_(l().b + d2, localq_, (q_)localObject));
          }
        }
        i--;
      }
    } while (!bool1);
  }
  
  private q_ a(zd paramzd, Map paramMap)
  {
    boolean bool = ld.E;
    q_ localq_;
    if (paramzd == paramzd.c().k())
    {
      if (!bool) {
        if (!this.E.contains(paramzd.c().i().e())) {
          return new s_(paramzd, paramzd.e(), (byte)3);
        }
      }
      if ((bool) || (!paramMap.isEmpty()))
      {
        localq_ = (q_)paramMap.get(paramzd);
        if ((bool) || (localq_ != null)) {
          return localq_;
        }
      }
      return new s_(paramzd, paramzd.e(), (byte)0);
    }
    if (!bool) {
      if (!this.E.contains(paramzd.c().i().f())) {
        return new s_(paramzd, paramzd.e(), (byte)3);
      }
    }
    if ((bool) || (!paramMap.isEmpty()))
    {
      localq_ = (q_)paramMap.get(paramzd);
      if ((bool) || (localq_ != null)) {
        return localq_;
      }
    }
    return new s_(paramzd, paramzd.e(), (byte)0);
  }
  
  private void F()
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    this.H = new ArrayList();
    if (!this.I) {
      return;
    }
    HashMap localHashMap1 = new HashMap(this.n.size());
    HashMap localHashMap2 = new HashMap(this.N.size());
    HashSet localHashSet = new HashSet(Math.min(32, this.n.size()));
    a(localHashMap1, localHashMap2, localHashSet);
    g localg = d().a();
    Iterator localIterator = localHashSet.iterator();
    label317:
    label321:
    do
    {
      int i;
      q_ localq_1;
      q_ localq_2;
      double d1;
      double d2;
      do
      {
        if (!localIterator.hasNext()) {
          break;
        }
        d locald = (d)localIterator.next();
        tb localtb = localg.t(locald);
        q_[] arrayOfq_ = a(localtb, localHashMap1, localHashMap2);
        i = 1;
        do
        {
          if (i >= arrayOfq_.length) {
            break;
          }
          localq_1 = arrayOfq_[(i - 1)];
          localq_2 = arrayOfq_[i];
          d1 = localq_1.a().a - localq_2.a().a;
          d2 = localq_1.a().b - localq_2.a().b;
        } while (bool2);
      } while (bool1);
      if (d1 == 0.0D)
      {
        if (!bool2) {
          if (d2 == 0.0D)
          {
            if (bool2) {
              break label321;
            }
            if (localq_1.c() == localq_2.c()) {
              break label317;
            }
          }
        }
        if (bool2) {
          continue;
        }
        if (localq_1.d()) {
          break label404;
        }
        if (bool2) {
          continue;
        }
        if (localq_2.d()) {
          break label404;
        }
        this.H.add(new t_(localq_1, localq_2));
        if (bool2) {
          continue;
        }
        if (!bool1) {
          break label404;
        }
      }
      if (!bool2)
      {
        if (d2 == 0.0D)
        {
          if (!bool2) {
            if (d1 == 0.0D)
            {
              if (bool2) {
                continue;
              }
              if (localq_1.d() == localq_2.d()) {
                break label404;
              }
            }
          }
          if (bool2) {
            continue;
          }
          if (!localq_1.c())
          {
            if (bool2) {
              continue;
            }
            if (!localq_2.c()) {
              this.H.add(new t_(localq_1, localq_2));
            }
          }
        }
        i++;
      }
    } while (!bool1);
    label404:
  }
  
  private void a(Map paramMap1, Map paramMap2, Set paramSet)
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    Iterator localIterator = this.M.iterator();
    Object localObject;
    do
    {
      do
      {
        do
        {
          if (!localIterator.hasNext()) {
            break;
          }
          localObject = (r_)localIterator.next();
          paramMap1.put(((r_)localObject).e(), localObject);
        } while (paramSet == null);
        if (bool2) {
          break label253;
        }
        paramSet.add(((r_)localObject).e().a());
        if (bool2) {
          break label272;
        }
        if (bool1) {
          break label249;
        }
      } while (bool2);
    } while (!bool1);
    if (!bool2) {
      if (paramSet != null) {
        localIterator = this.m.iterator();
      }
    }
    label198:
    label200:
    label249:
    label253:
    while (bool2) {
      do
      {
        do
        {
          if (!localIterator.hasNext()) {
            break;
          }
          localObject = (e)localIterator.next();
          locald = ((e)localObject).i();
          do
          {
            do
            {
              if (locald == null) {
                break;
              }
              paramSet.add(locald);
              if (bool2) {
                break label200;
              }
              locald = locald.j();
              if (bool1) {
                break label198;
              }
            } while (!bool1);
          } while (bool2);
          locald = ((e)localObject).h();
        } while (locald == null);
        if (bool2) {
          break label253;
        }
        paramSet.add(locald);
        d locald = locald.i();
        if (bool2) {
          break label272;
        }
        if (bool1) {
          break;
        }
        if (bool2) {
          break label272;
        }
        if (bool1) {
          break label265;
        }
      } while (!bool1);
    }
    localIterator = this.N.iterator();
    label265:
    label272:
    label353:
    do
    {
      if (!localIterator.hasNext()) {
        break;
      }
      localObject = (s_)localIterator.next();
      if ((bool2) || (((s_)localObject).d()))
      {
        if (bool2) {
          continue;
        }
        if (((s_)localObject).c()) {}
      }
      else
      {
        if (bool2) {
          break label353;
        }
        if (paramSet != null) {
          paramSet.add(((s_)localObject).e().c().i());
        }
      }
      paramMap2.put(((s_)localObject).e(), localObject);
    } while (!bool1);
  }
  
  private q_[] a(tb paramtb, Map paramMap1, Map paramMap2)
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    q_[] arrayOfq_ = new q_[paramtb.n() + 2];
    arrayOfq_[0] = a(paramtb.k(), paramMap2);
    int i = 1;
    fb localfb = paramtb.o();
    if (localfb.e()) {}
    while (bool2)
    {
      r_ localr_ = (r_)paramMap1.get(localfb.a());
      if (bool1) {
        break label174;
      }
      if ((bool2) || (localr_ == null)) {
        localr_ = new r_(localfb.a(), new a.d.w(localfb.a().b(), localfb.a().c()), (byte)0);
      }
      arrayOfq_[(i++)] = localr_;
      localfb.f();
      if (!bool1) {
        break;
      }
    }
    arrayOfq_[(arrayOfq_.length - 1)] = a(paramtb.l(), paramMap2);
    label174:
    return arrayOfq_;
  }
  
  public void a(t_ paramt_)
  {
    this.H.add(paramt_);
  }
  
  public t_ a(q_ paramq_1, q_ paramq_2)
  {
    boolean bool = ld.E;
    double d1 = paramq_2.a().a - paramq_1.a().a;
    double d2 = paramq_2.a().b - paramq_1.a().b;
    t_ localt_ = null;
    if (!bool) {
      if (d1 == 0.0D)
      {
        if (!bool) {
          if (d2 == 0.0D)
          {
            if (bool) {
              break label127;
            }
            if (paramq_1.c() == paramq_2.c()) {
              break label123;
            }
          }
        }
        if ((!bool) && ((paramq_1.d()) || (paramq_2.d()))) {
          break label202;
        }
        localt_ = new t_(paramq_1, paramq_2);
        this.H.add(localt_);
        break label202;
      }
    }
    label123:
    label127:
    if (((bool) || (d2 == 0.0D)) && ((bool) || ((d1 != 0.0D) || ((bool) || (paramq_1.d() != paramq_2.d())))) && ((bool) || ((!paramq_1.c()) && (!paramq_2.c()))))
    {
      localt_ = new t_(paramq_1, paramq_2);
      this.H.add(localt_);
    }
    label202:
    return localt_;
  }
  
  public void b(t_ paramt_)
  {
    if ((paramt_ != null) && ((ld.E) || (this.H != null))) {
      this.H.remove(paramt_);
    }
  }
  
  private void G()
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    if (!bool2) {
      if (!this.G) {
        return;
      }
    }
    g localg = d().a();
    label47:
    label66:
    label68:
    do
    {
      Iterator localIterator = this.m.iterator();
      tb localtb;
      Object localObject1;
      Object localObject2;
      s_ locals_;
      do
      {
        if (!localIterator.hasNext()) {
          break;
        }
        e locale = (e)localIterator.next();
        locald = locale.i();
        if (locald != null)
        {
          localtb = localg.t(locald);
          localObject1 = null;
        }
        do
        {
          if (bool1) {
            break label47;
          }
          if (localtb.n() == 0)
          {
            if (this.E.contains(locald.e())) {
              localObject1 = new s_(localtb.k(), localg.r(locald), (byte)0);
            }
          }
          else
          {
            localObject2 = localtb.q();
            if (!this.n.contains(localObject2)) {
              localObject1 = new r_((eb)localObject2, ((eb)localObject2).e(), (byte)0);
            }
          }
          if (localObject1 != null)
          {
            localObject2 = localg.s(locald);
            locals_ = new s_(localtb.l(), (a.d.w)localObject2, (byte)3);
            this.A.a(new i_(l().a + (((q_)localObject1).a().a - ((a.d.w)localObject2).a), (q_)localObject1, locals_));
            this.B.a(new i_(l().b + (((q_)localObject1).a().b - ((a.d.w)localObject2).b), (q_)localObject1, locals_));
          }
          locald = locald.j();
          if (!bool1) {
            break label66;
          }
          if (bool2) {
            break label68;
          }
          locald = locale.h();
          if (locald == null) {
            break;
          }
          localtb = localg.t(locald);
          localObject1 = null;
        } while (bool2);
      } while (bool1);
      if (localtb.n() == 0)
      {
        if (this.E.contains(locald.f())) {
          localObject1 = new s_(localtb.l(), localg.s(locald), (byte)0);
        }
      }
      else
      {
        localObject2 = localtb.p();
        if (!this.n.contains(localObject2)) {
          localObject1 = new r_((eb)localObject2, ((eb)localObject2).e(), (byte)0);
        }
      }
      if (localObject1 != null)
      {
        localObject2 = localg.r(locald);
        locals_ = new s_(localtb.k(), (a.d.w)localObject2, (byte)3);
        this.A.a(new i_(l().a + (((q_)localObject1).a().a - ((a.d.w)localObject2).a), (q_)localObject1, locals_));
        this.B.a(new i_(l().b + (((q_)localObject1).a().b - ((a.d.w)localObject2).b), (q_)localObject1, locals_));
      }
      d locald = locald.i();
    } while (!bool1);
  }
  
  protected void a(e parame, ld paramld, Collection paramCollection1, Collection paramCollection2)
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    if (!bool2) {
      if ((paramld instanceof f)) {
        a(parame, (f)paramld, paramCollection1, paramCollection2);
      }
    }
    double d1 = paramld.A();
    double d2 = paramld.B();
    double d3 = paramld.a();
    double d4 = paramld.c();
    double d5 = paramld.b();
    double d6 = paramld.d();
    double d7 = d3 + d4;
    double d8 = d5 + d6;
    Object localObject1 = nb.a(parame, Boolean.TRUE);
    Object localObject2 = nb.a(parame, Boolean.FALSE);
    double d9 = this.L;
    paramCollection1.add(new u_((byte)0, (byte)2, new a.d.w(d1, d5), d3 - d9, d7 + d9, localObject2, 0.9D));
    paramCollection1.add(new u_((byte)0, (byte)1, new a.d.w(d1, d8), d3 - d9, d7 + d9, localObject2, 0.9D));
    paramCollection1.add(new u_((byte)1, (byte)8, new a.d.w(d3, d2), d5 - d9, d8 + d9, localObject1, 0.9D));
    paramCollection1.add(new u_((byte)1, (byte)4, new a.d.w(d7, d2), d5 - d9, d8 + d9, localObject1, 0.9D));
    double d10 = this.v;
    if (!bool2) {
      if (d10 > 0.0D)
      {
        paramCollection1.add(new v_((byte)0, (byte)2, new a.d.w(d1, d5 - d10), d3 - d9, d7 + d9, localObject2, 0.95D, d10));
        paramCollection1.add(new v_((byte)0, (byte)1, new a.d.w(d1, d8 + d10), d3 - d9, d7 + d9, localObject2, 0.95D, d10));
        paramCollection1.add(new v_((byte)1, (byte)8, new a.d.w(d3 - d10, d2), d5 - d9, d8 + d9, localObject1, 0.95D, d10));
        paramCollection1.add(new v_((byte)1, (byte)4, new a.d.w(d7 + d10, d2), d5 - d9, d8 + d9, localObject1, 0.95D, d10));
      }
    }
    double d11 = this.w;
    if (!bool2)
    {
      if (d11 >= 0.0D)
      {
        paramCollection2.add(new v_((byte)0, (byte)2, new a.d.w(d1, d5 - d11), d3 - d9, d7 + d9, localObject2, 0.95D, d11));
        paramCollection2.add(new v_((byte)0, (byte)1, new a.d.w(d1, d8 + d11), d3 - d9, d7 + d9, localObject2, 0.95D, d11));
        paramCollection2.add(new v_((byte)1, (byte)8, new a.d.w(d3 - d11, d2), d5 - d9, d8 + d9, localObject1, 0.95D, d11));
      }
    }
    else {
      paramCollection2.add(new v_((byte)1, (byte)4, new a.d.w(d7 + d11, d2), d5 - d9, d8 + d9, localObject1, 0.95D, d11));
    }
    u_ localu_1 = new u_((byte)0, (byte)16, new a.d.w(d1, d2), localObject2, 1.0D);
    u_ localu_2 = new u_((byte)1, (byte)16, new a.d.w(d1, d2), localObject1, 1.0D);
    paramCollection1.add(localu_1);
    paramCollection1.add(localu_2);
    paramCollection2.add(localu_1);
    paramCollection2.add(localu_2);
    paramCollection1.add(new u_((byte)0, (byte)1, new a.d.w(d1, d5), localObject2, 0.5D));
    paramCollection1.add(new u_((byte)0, (byte)2, new a.d.w(d1, d8), localObject2, 0.5D));
    paramCollection1.add(new u_((byte)1, (byte)4, new a.d.w(d3, d2), localObject1, 0.5D));
    paramCollection1.add(new u_((byte)1, (byte)8, new a.d.w(d7, d2), localObject1, 0.5D));
    if ((bool2) || (q.n))
    {
      if (!bool2) {}
      ld.D = !bool1;
    }
    if (q.o) {
      ld.E = !bool2;
    }
  }
  
  protected void a(e parame, f paramf, Collection paramCollection1, Collection paramCollection2)
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    Object localObject1 = nb.a(parame, Boolean.TRUE);
    Object localObject2 = nb.a(parame, Boolean.FALSE);
    ArrayList localArrayList = new ArrayList();
    localArrayList.addAll(paramf.eb().o());
    Object localObject4;
    label184:
    do
    {
      do
      {
        if (localArrayList.isEmpty()) {
          break label187;
        }
        if ((!bool2) && (bool1)) {
          break label194;
        }
        localObject3 = (f.p_)localArrayList.remove(0);
        if (bool2) {
          break label184;
        }
        if (!((f.p_)localObject3).o().isEmpty()) {
          break;
        }
        localObject4 = ((f.p_)localObject3).h();
        paramCollection1.add(new ue((byte)0, (byte)16, new a.d.w(((Rectangle2D)localObject4).getX(), ((Rectangle2D)localObject4).getCenterY()), ((Rectangle2D)localObject4).getX(), ((Rectangle2D)localObject4).getMaxX(), localObject2, 0.9D));
        if (bool2) {
          break label184;
        }
      } while (!bool1);
      localArrayList.addAll(((f.p_)localObject3).o());
    } while (!bool1);
    label187:
    label194:
    Object localObject3 = new ArrayList();
    ((ArrayList)localObject3).addAll(paramf.eb().l());
    label333:
    do
    {
      do
      {
        if (((ArrayList)localObject3).isEmpty()) {
          return;
        }
        localObject4 = (f.n_)((ArrayList)localObject3).remove(0);
        if (bool2) {
          break label333;
        }
        if (!((f.n_)localObject4).l().isEmpty()) {
          break;
        }
        Rectangle2D localRectangle2D = ((f.n_)localObject4).h();
        paramCollection1.add(new ue((byte)1, (byte)16, new a.d.w(localRectangle2D.getCenterX(), localRectangle2D.getY()), localRectangle2D.getY(), localRectangle2D.getMaxY(), localObject1, 0.9D));
        if (bool2) {
          break label333;
        }
      } while (!bool1);
      ((ArrayList)localObject3).addAll(((f.n_)localObject4).l());
    } while (!bool1);
  }
  
  protected void b(Collection paramCollection1, Collection paramCollection2)
  {
    boolean bool = ld.E;
    g localg = d().a();
    if (!bool) {
      if (this.y) {
        e(paramCollection1, paramCollection2);
      }
    }
    if (!bool) {
      if (this.z) {
        c(paramCollection1, paramCollection2);
      }
    }
    if ((bool) || (!this.t))
    {
      if (bool) {
        break label142;
      }
      if (!this.u) {}
    }
    else
    {
      new n_()
      {
        private final g val$g;
        private final Collection val$fixedNodeSnapLines;
        private final Collection val$fixedSegmentSnapLines;
        
        protected void a(e paramAnonymouse1, e paramAnonymouse2, boolean paramAnonymousBoolean, double paramAnonymousDouble1, double paramAnonymousDouble2)
        {
          boolean bool2 = ld.E;
          boolean bool1 = ld.D;
          if (paramAnonymousDouble2 - paramAnonymousDouble1 < 10.0D) {
            return;
          }
          ld localld1 = this.val$g.w(paramAnonymouse1);
          double d1 = localld1.a();
          double d2 = d1 + localld1.c();
          double d3 = (d1 + d2) * 0.5D;
          ld localld2 = this.val$g.w(paramAnonymouse2);
          double d4 = localld2.a();
          double d5 = d4 + localld2.c();
          paramAnonymousDouble1 = Math.min(localld1.b(), localld2.b());
          paramAnonymousDouble2 = Math.max(localld1.b() + localld1.d(), localld2.b() + localld2.d());
          paramAnonymousDouble1 -= z.this.L;
          paramAnonymousDouble2 += z.this.L;
          double d6 = Math.max(localld1.b(), localld2.b());
          double d7 = Math.min(localld1.b() + localld1.d(), localld2.b() + localld2.d());
          Object localObject1 = nb.a(paramAnonymouse1, paramAnonymousBoolean ? Boolean.TRUE : Boolean.FALSE);
          Object localObject2 = nb.a(paramAnonymouse2, paramAnonymousBoolean ? Boolean.TRUE : Boolean.FALSE);
          if (!bool2) {
            if (paramAnonymouse1.f() < paramAnonymouse2.f())
            {
              localObject3 = nb.a(paramAnonymouse1, paramAnonymouse2, paramAnonymousBoolean ? Boolean.TRUE : Boolean.FALSE);
              if (!bool1) {
                break label295;
              }
            }
          }
          Object localObject3 = nb.a(paramAnonymouse2, paramAnonymouse1, paramAnonymousBoolean ? Boolean.TRUE : Boolean.FALSE);
          label295:
          double d8 = (d6 + d7) * 0.5D;
          if (!bool2) {
            if (d2 < d4)
            {
              if (!bool2) {
                if (z.this.u)
                {
                  z.w_ localw_1 = new z.w_((byte)1, (byte)16, new a.d.w((d2 + d4) * 0.5D, d8), paramAnonymousDouble1, paramAnonymousDouble2, localObject3, 1.0D, d2, d4);
                  this.val$fixedNodeSnapLines.add(localw_1);
                  this.val$fixedSegmentSnapLines.add(localw_1);
                  this.val$fixedNodeSnapLines.add(new z.x_((byte)1, (byte)4, new a.d.w(d5 + (d4 - d2), d8), paramAnonymousDouble1, paramAnonymousDouble2, localObject2, 0.5D, d4, d2, d5));
                  this.val$fixedNodeSnapLines.add(new z.x_((byte)1, (byte)8, new a.d.w(d1 - (d4 - d2), d8), paramAnonymousDouble1, paramAnonymousDouble2, localObject1, 0.5D, d4, d2, d1));
                }
              }
              if (!z.this.t) {
                return;
              }
              double d9 = (d4 + d5) * 0.5D;
              this.val$fixedNodeSnapLines.add(new ue((byte)1, (byte)16, new a.d.w(d9 + d9 - d3, d8), paramAnonymousDouble1, paramAnonymousDouble2, localObject2, 0.1D));
              this.val$fixedNodeSnapLines.add(new ue((byte)1, (byte)16, new a.d.w(d3 - (d9 - d3), d8), paramAnonymousDouble1, paramAnonymousDouble2, localObject1, 0.1D));
              this.val$fixedNodeSnapLines.add(new ue((byte)1, (byte)16, new a.d.w((d3 + d9) * 0.5D, d8), paramAnonymousDouble1, paramAnonymousDouble2, localObject3, 0.25D));
              if ((!bool2) && (!bool1)) {
                return;
              }
            }
          }
          if ((bool2) || (d5 < d1))
          {
            if (!bool2) {
              if (z.this.u)
              {
                z.w_ localw_2 = new z.w_((byte)1, (byte)16, new a.d.w((d5 + d1) * 0.5D, d8), paramAnonymousDouble1, paramAnonymousDouble2, localObject3, 1.0D, d5, d1);
                this.val$fixedNodeSnapLines.add(localw_2);
                this.val$fixedSegmentSnapLines.add(localw_2);
                this.val$fixedNodeSnapLines.add(new z.x_((byte)1, (byte)4, new a.d.w(d2 + (d1 - d5), d8), paramAnonymousDouble1, paramAnonymousDouble2, localObject1, 0.5D, d1, d5, d2));
                this.val$fixedNodeSnapLines.add(new z.x_((byte)1, (byte)8, new a.d.w(d4 - (d1 - d5), d8), paramAnonymousDouble1, paramAnonymousDouble2, localObject2, 0.5D, d1, d5, d4));
              }
            }
            if (z.this.t)
            {
              double d10 = (d4 + d5) * 0.5D;
              this.val$fixedNodeSnapLines.add(new ue((byte)1, (byte)16, new a.d.w(d3 + d3 - d10, d8), paramAnonymousDouble1, paramAnonymousDouble2, localObject1, 0.1D));
              this.val$fixedNodeSnapLines.add(new ue((byte)1, (byte)16, new a.d.w(d10 - (d3 - d10), d8), paramAnonymousDouble1, paramAnonymousDouble2, localObject2, 0.1D));
              this.val$fixedNodeSnapLines.add(new ue((byte)1, (byte)16, new a.d.w((d3 + d10) * 0.5D, d8), paramAnonymousDouble1, paramAnonymousDouble2, localObject3, 0.25D));
            }
          }
        }
      }.a(localg, this.E, d().getVisibleRect().getBounds2D(), true);
      new n_()
      {
        private final g val$g;
        private final Collection val$fixedNodeSnapLines;
        private final Collection val$fixedSegmentSnapLines;
        
        protected void a(e paramAnonymouse1, e paramAnonymouse2, boolean paramAnonymousBoolean, double paramAnonymousDouble1, double paramAnonymousDouble2)
        {
          boolean bool2 = ld.E;
          boolean bool1 = ld.D;
          if (paramAnonymousDouble2 - paramAnonymousDouble1 < 10.0D) {
            return;
          }
          ld localld1 = this.val$g.w(paramAnonymouse1);
          double d1 = localld1.b();
          double d2 = d1 + localld1.d();
          double d3 = (d1 + d2) * 0.5D;
          ld localld2 = this.val$g.w(paramAnonymouse2);
          double d4 = localld2.b();
          double d5 = d4 + localld2.d();
          paramAnonymousDouble1 = Math.min(localld1.a(), localld2.a());
          paramAnonymousDouble2 = Math.max(localld1.a() + localld1.c(), localld2.a() + localld2.c());
          paramAnonymousDouble1 -= z.this.L;
          paramAnonymousDouble2 += z.this.L;
          double d6 = Math.max(localld1.a(), localld2.a());
          double d7 = Math.min(localld1.a() + localld1.c(), localld2.a() + localld2.c());
          Object localObject1 = nb.a(paramAnonymouse1, paramAnonymousBoolean ? Boolean.TRUE : Boolean.FALSE);
          Object localObject2 = nb.a(paramAnonymouse2, paramAnonymousBoolean ? Boolean.TRUE : Boolean.FALSE);
          if (!bool2) {
            if (paramAnonymouse1.f() < paramAnonymouse2.f())
            {
              localObject3 = nb.a(paramAnonymouse1, paramAnonymouse2, paramAnonymousBoolean ? Boolean.TRUE : Boolean.FALSE);
              if (!bool1) {
                break label295;
              }
            }
          }
          Object localObject3 = nb.a(paramAnonymouse2, paramAnonymouse1, paramAnonymousBoolean ? Boolean.TRUE : Boolean.FALSE);
          label295:
          double d8 = (d6 + d7) * 0.5D;
          if (!bool2) {
            if (d2 < d4)
            {
              if (!bool2) {
                if (z.this.u)
                {
                  z.w_ localw_1 = new z.w_((byte)0, (byte)16, new a.d.w(d8, (d2 + d4) * 0.5D), paramAnonymousDouble1, paramAnonymousDouble2, localObject3, 1.0D, d2, d4);
                  this.val$fixedNodeSnapLines.add(localw_1);
                  this.val$fixedSegmentSnapLines.add(localw_1);
                  this.val$fixedNodeSnapLines.add(new z.x_((byte)0, (byte)1, new a.d.w(d8, d5 + (d4 - d2)), paramAnonymousDouble1, paramAnonymousDouble2, localObject2, 0.5D, d4, d2, d5));
                  this.val$fixedNodeSnapLines.add(new z.x_((byte)0, (byte)2, new a.d.w(d8, d1 - (d4 - d2)), paramAnonymousDouble1, paramAnonymousDouble2, localObject1, 0.5D, d4, d2, d1));
                }
              }
              if (!z.this.t) {
                return;
              }
              double d9 = (d4 + d5) * 0.5D;
              this.val$fixedNodeSnapLines.add(new ue((byte)0, (byte)16, new a.d.w(d8, d9 + d9 - d3), paramAnonymousDouble1, paramAnonymousDouble2, localObject2, 0.1D));
              this.val$fixedNodeSnapLines.add(new ue((byte)0, (byte)16, new a.d.w(d8, d3 - (d9 - d3)), paramAnonymousDouble1, paramAnonymousDouble2, localObject1, 0.1D));
              this.val$fixedNodeSnapLines.add(new ue((byte)0, (byte)16, new a.d.w(d8, (d3 + d9) * 0.5D), paramAnonymousDouble1, paramAnonymousDouble2, localObject3, 0.25D));
              if ((!bool2) && (!bool1)) {
                return;
              }
            }
          }
          if ((bool2) || (d5 < d1))
          {
            if (!bool2) {
              if (z.this.u)
              {
                z.w_ localw_2 = new z.w_((byte)0, (byte)16, new a.d.w(d8, (d5 + d1) * 0.5D), paramAnonymousDouble1, paramAnonymousDouble2, localObject3, 1.0D, d5, d1);
                this.val$fixedNodeSnapLines.add(localw_2);
                this.val$fixedSegmentSnapLines.add(localw_2);
                this.val$fixedNodeSnapLines.add(new z.x_((byte)0, (byte)1, new a.d.w(d8, d2 + (d1 - d5)), paramAnonymousDouble1, paramAnonymousDouble2, localObject1, 0.5D, d1, d5, d2));
                this.val$fixedNodeSnapLines.add(new z.x_((byte)0, (byte)2, new a.d.w(d8, d4 - (d1 - d5)), paramAnonymousDouble1, paramAnonymousDouble2, localObject2, 0.5D, d1, d5, d4));
              }
            }
            if (z.this.t)
            {
              double d10 = (d4 + d5) * 0.5D;
              this.val$fixedNodeSnapLines.add(new ue((byte)0, (byte)16, new a.d.w(d8, d3 + d3 - d10), paramAnonymousDouble1, paramAnonymousDouble2, localObject1, 0.1D));
              this.val$fixedNodeSnapLines.add(new ue((byte)0, (byte)16, new a.d.w(d8, d10 - (d3 - d10)), paramAnonymousDouble1, paramAnonymousDouble2, localObject2, 0.1D));
              this.val$fixedNodeSnapLines.add(new ue((byte)0, (byte)16, new a.d.w(d8, (d3 + d10) * 0.5D), paramAnonymousDouble1, paramAnonymousDouble2, localObject3, 0.25D));
            }
          }
        }
      }.a(localg, this.E, d().getVisibleRect().getBounds2D(), false);
    }
    if ((bool) || (this.O)) {
      label142:
      d(paramCollection1, paramCollection2);
    }
  }
  
  private void c(Collection paramCollection1, Collection paramCollection2)
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    g localg = d().a();
    Iterator localIterator = this.E.iterator();
    do
    {
      do
      {
        e locale;
        ld localld;
        do
        {
          if (!localIterator.hasNext()) {
            break;
          }
          locale = (e)localIterator.next();
          localld = localg.w(locale);
        } while (!a(localld));
        a(locale, paramCollection1, paramCollection2);
      } while (bool2);
    } while (!bool1);
  }
  
  private void d(Collection paramCollection1, Collection paramCollection2)
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    if (!bool2) {
      if (paramCollection1.isEmpty())
      {
        if (!bool2) {
          if (paramCollection2.isEmpty()) {
            break label55;
          }
        }
      }
      else {
        if (bool2) {
          break label57;
        }
      }
    }
    if (this.E.isEmpty()) {
      label55:
      return;
    }
    label57:
    g localg = d().a();
    ArrayList localArrayList1 = new ArrayList();
    ArrayList localArrayList2 = new ArrayList();
    Object localObject = this.E.iterator();
    do
    {
      do
      {
        ld localld;
        do
        {
          if (!((Iterator)localObject).hasNext()) {
            break;
          }
          e locale = (e)((Iterator)localObject).next();
          localld = localg.w(locale);
        } while (!a(localld));
        localArrayList1.add(new m_(localld.a(), localld.b(), localld.b() + localld.d(), true));
        localArrayList1.add(new m_(localld.a() + localld.c(), localld.b(), localld.b() + localld.d(), false));
        localArrayList2.add(new m_(localld.b(), localld.a(), localld.a() + localld.c(), true));
        localArrayList2.add(new m_(localld.b() + localld.d(), localld.a(), localld.a() + localld.c(), false));
      } while (bool2);
    } while (!bool1);
    localObject = new HashSet();
    ((HashSet)localObject).addAll(paramCollection1);
    ((HashSet)localObject).addAll(paramCollection2);
    a(localArrayList1, localArrayList2, (Collection)localObject);
    a(localArrayList1);
    a(localArrayList2);
  }
  
  private void a(List paramList)
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    l.a(paramList, null);
    lb locallb = new lb(new Comparator()
    {
      public int compare(Object paramAnonymousObject1, Object paramAnonymousObject2)
      {
        z.l_ locall_1 = (z.l_)paramAnonymousObject1;
        z.l_ locall_2 = (z.l_)paramAnonymousObject2;
        return l.a(locall_1.c, locall_2.c);
      }
    });
    Iterator localIterator = paramList.iterator();
    break label175;
    label175:
    label318:
    label357:
    label362:
    do
    {
      do
      {
        Object localObject;
        do
        {
          do
          {
            k_ localk_;
            do
            {
              lb.b_ localb_1;
              do
              {
                l_ locall_1;
                l_ locall_2;
                do
                {
                  if (!localIterator.hasNext()) {
                    return;
                  }
                  localk_ = (k_)localIterator.next();
                  if (bool2) {
                    break label318;
                  }
                  if (!(localk_ instanceof m_)) {
                    break;
                  }
                  localObject = (m_)localk_;
                  locall_1 = new l_(null, 0.0D, ((m_)localObject).b, 0.0D, null);
                  locall_2 = new l_(null, 0.0D, ((m_)localObject).e, 0.0D, null);
                } while ((!bool2) && (locallb.c() == 0));
                localb_1 = locallb.d(locall_2);
                localb_2 = locallb.c(locall_1);
                if (!bool2) {
                  if (localb_2 == null)
                  {
                    if (bool2) {
                      continue;
                    }
                    localb_2 = locallb.g();
                    if (!bool1) {
                      continue;
                    }
                  }
                }
                localb_2 = localb_2.a();
              } while (localb_2 == localb_1);
              l_ locall_3 = (l_)localb_2.c();
              lb.b_ localb_2 = localb_2.a();
              if (!bool2) {
                if (((m_)localObject).d) {
                  if (!bool2)
                  {
                    if (((m_)localObject).a <= locall_3.d) {
                      break;
                    }
                    locall_3.b.b(((m_)localObject).a);
                    locallb.a(locall_3.g);
                    locall_3.g = null;
                  }
                }
              }
              if ((!bool2) && ((!bool1) || (((m_)localObject).a >= locall_3.d))) {
                break;
              }
              locall_3.b.a(((m_)localObject).a);
            } while (bool2);
            if ((!bool2) && (bool1)) {
              return;
            }
            if (!bool1) {
              break;
            }
            localObject = (l_)localk_;
            if (bool2) {
              break label362;
            }
            if (((l_)localObject).e != null) {
              break label357;
            }
            if (bool2) {
              break label362;
            }
            ((l_)localObject).g = locallb.a(localObject);
          } while (!bool1);
        } while (((l_)localObject).e.g == null);
        locallb.a(((l_)localObject).e.g);
        ((l_)localObject).e.g = null;
      } while (bool2);
    } while (!bool1);
  }
  
  private void a(List paramList1, List paramList2, Collection paramCollection)
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    Iterator localIterator = paramCollection.iterator();
    label205:
    do
    {
      ue localue;
      a.d.w localw;
      do
      {
        if (!localIterator.hasNext()) {
          return;
        }
        localue = (ue)localIterator.next();
        localw = localue.b();
        if (localue.c() != 0) {
          break;
        }
        locall_ = new l_(localue, localue.e(), localw.b, localw.a, null);
        paramList1.add(locall_);
        paramList1.add(new l_(localue, localue.f(), localw.b, localw.a, locall_));
        if (bool2) {
          break label205;
        }
      } while (!bool1);
      l_ locall_ = new l_(localue, localue.e(), localw.a, localw.b, null);
      paramList2.add(locall_);
      paramList2.add(new l_(localue, localue.f(), localw.a, localw.b, locall_));
    } while (!bool1);
  }
  
  private void e(Collection paramCollection1, Collection paramCollection2)
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    g localg = d().a();
    HashMap localHashMap1 = new HashMap(this.n.size());
    HashMap localHashMap2 = new HashMap(this.N.size());
    a(localHashMap1, localHashMap2, null);
    m localm = localg.w();
    label228:
    do
    {
      if (!localm.e()) {
        break;
      }
      d locald = localm.a();
      tb localtb = localg.t(locald);
      q_[] arrayOfq_ = a(localtb, localHashMap1, localHashMap2);
      int i = 1;
      do
      {
        do
        {
          if (i >= arrayOfq_.length) {
            break label228;
          }
          q_ localq_1 = arrayOfq_[(i - 1)];
          q_ localq_2 = arrayOfq_[i];
          if (bool1) {
            break;
          }
          if ((bool2) || (localq_1.d())) {
            if (bool2) {}
          }
          if ((bool2) || (localq_1.c())) {
            if (bool2) {}
          }
          a(paramCollection1, paramCollection2, localtb, localq_1.a(), localq_2.a(), localq_2.d(), localq_2.c());
          i++;
        } while (!bool1);
        localm.f();
      } while (bool2);
    } while (!bool1);
  }
  
  private void a(Collection paramCollection1, Collection paramCollection2, tb paramtb, a.d.w paramw1, a.d.w paramw2, boolean paramBoolean1, boolean paramBoolean2)
  {
    boolean bool = ld.E;
    double d1 = this.w;
    double d2 = this.x;
    Object localObject;
    a.d.w localw;
    double d3;
    double d4;
    if (!bool) {
      if (paramw1.a == paramw2.a)
      {
        if (bool) {
          break label427;
        }
        if (paramBoolean1)
        {
          if ((!bool) && (!a(paramtb, paramw1, paramw2))) {
            return;
          }
          localObject = nb.a(paramtb.i(), Boolean.TRUE);
          localw = new a.d.w(paramw1.a, (paramw2.b + paramw1.b) * 0.5D);
          d3 = Math.min(paramw1.b, paramw2.b) - this.L;
          d4 = Math.max(paramw1.b, paramw2.b) + this.L;
          paramCollection2.add(new u_((byte)1, (byte)4, localw, localObject, 0.2D));
          paramCollection2.add(new u_((byte)1, (byte)8, localw, localObject, 0.2D));
          if (!bool) {
            if (d1 > 0.0D)
            {
              paramCollection1.add(new v_((byte)1, (byte)4, new a.d.w(localw.a + d1, localw.b), d3, d4, localObject, 0.4D, d1));
              paramCollection1.add(new v_((byte)1, (byte)8, new a.d.w(localw.a - d1, localw.b), d3, d4, localObject, 0.4D, d1));
            }
          }
          if (!bool)
          {
            if (d2 <= 0.0D) {
              return;
            }
            paramCollection2.add(new v_((byte)1, (byte)4, new a.d.w(localw.a + d2, localw.b), d3, d4, localObject, 0.4D, d2));
            paramCollection2.add(new v_((byte)1, (byte)8, new a.d.w(localw.a - d2, localw.b), d3, d4, localObject, 0.4D, d2));
          }
          if ((!bool) && (!ld.D)) {
            return;
          }
        }
      }
    }
    label427:
    if (((bool) || (paramw1.b == paramw2.b)) && ((bool) || ((paramBoolean2) && ((bool) || (a(paramtb, paramw1, paramw2))))))
    {
      localObject = nb.a(paramtb.i(), Boolean.FALSE);
      localw = new a.d.w((paramw1.a + paramw2.a) * 0.5D, paramw2.b);
      d3 = Math.min(paramw1.a, paramw2.a) - this.L;
      d4 = Math.max(paramw1.a, paramw2.a) + this.L;
      paramCollection2.add(new u_((byte)0, (byte)1, localw, localObject, 0.2D));
      paramCollection2.add(new u_((byte)0, (byte)2, localw, localObject, 0.2D));
      if (!bool) {
        if (d1 > 0.0D)
        {
          paramCollection1.add(new v_((byte)0, (byte)1, new a.d.w(localw.a, localw.b + d1), d3, d4, localObject, 0.4D, d1));
          paramCollection1.add(new v_((byte)0, (byte)2, new a.d.w(localw.a, localw.b - d1), d3, d4, localObject, 0.4D, d1));
        }
      }
      if (!bool)
      {
        if (d2 > 0.0D) {
          paramCollection2.add(new v_((byte)0, (byte)1, new a.d.w(localw.a, localw.b + d2), d3, d4, localObject, 0.4D, d2));
        }
      }
      else {
        paramCollection2.add(new v_((byte)0, (byte)2, new a.d.w(localw.a, localw.b - d2), d3, d4, localObject, 0.4D, d2));
      }
    }
  }
  
  public a.d.w b(a.d.w paramw)
  {
    boolean bool4 = ld.E;
    boolean bool3 = ld.D;
    if (!this.J) {
      return paramw;
    }
    ArrayList localArrayList = new ArrayList();
    double d1 = f() / d().M();
    a(d1, this.A, paramw.a, localArrayList, true);
    a(d1, this.B, paramw.b, localArrayList, false);
    double d2 = paramw.a - l().a;
    double d3 = paramw.b - l().b;
    Iterator localIterator1 = this.H.iterator();
    break label229;
    label107:
    if (localIterator1.hasNext()) {}
    Object localObject1;
    Object localObject2;
    label191:
    label229:
    while (bool4)
    {
      localObject1 = (t_)localIterator1.next();
      localObject2 = this.q.iterator();
      do
      {
        do
        {
          if (!((Iterator)localObject2).hasNext()) {
            break label191;
          }
          localue1 = (ue)((Iterator)localObject2).next();
          a((t_)localObject1, d2, d3, d1, localArrayList, localue1);
          if ((!bool4) && (bool3)) {
            break;
          }
        } while (!bool3);
      } while (bool4);
      if (k().isEmpty()) {
        break label107;
      }
      if ((bool4) || (bool3)) {
        break label294;
      }
      localObject2 = k().iterator();
      if (!((Iterator)localObject2).hasNext()) {
        break label107;
      }
      ue localue1 = (ue)((Iterator)localObject2).next();
      if (!bool4)
      {
        a((t_)localObject1, d2, d3, d1, localArrayList, localue1);
        if ((!bool3) && (!bool3)) {
          break;
        }
      }
    }
    label294:
    localIterator1 = this.m.iterator();
    double d7;
    label492:
    do
    {
      for (;;)
      {
        if (localIterator1.hasNext())
        {
          localObject1 = (e)localIterator1.next();
          try
          {
            localObject2 = (Rectangle2D.Double)this.o.get(localObject1);
            if (localObject2 == null)
            {
              if (bool4) {
                continue;
              }
              if (!bool3) {
                continue;
              }
            }
          }
          catch (Exception localException) {}
          continue;
          double d4 = ((Rectangle2D.Double)localObject2).getX() + d2;
          double d6 = d4 + ((Rectangle2D.Double)localObject2).getWidth();
          d7 = ((Rectangle2D.Double)localObject2).getY() + d3;
          double d8 = d7 + ((Rectangle2D.Double)localObject2).getHeight();
          ld localld = d().a().w((e)localObject1);
          eb_ localeb_ = new eb_(localld);
          int j = 0;
          ue localue3;
          do
          {
            do
            {
              if (j >= this.p.size()) {
                break label492;
              }
              localue3 = (ue)this.p.get(j);
              a(localue3, localeb_, paramw, d4, d7, d6, d8, d1, localArrayList);
              j++;
              if ((!bool4) && (bool3)) {
                break;
              }
            } while (!bool3);
          } while (bool4);
          if (!k().isEmpty())
          {
            if ((bool4) || (bool3)) {
              break label612;
            }
            Iterator localIterator3 = k().iterator();
            if (localIterator3.hasNext())
            {
              localue3 = (ue)localIterator3.next();
              a(localue3, localeb_, paramw, d4, d7, d6, d8, d1, localArrayList);
              if (bool4) {
                break label600;
              }
              if ((!bool3) && (!bool3)) {
                break;
              }
            }
          }
        }
      }
      if (bool4) {
        break label604;
      }
    } while (bool4);
    if (this.D)
    {
      label600:
      label604:
      label612:
      localIterator1 = this.M.iterator();
      label770:
      do
      {
        boolean bool1;
        double d5;
        boolean bool2;
        Iterator localIterator2;
        while (!localIterator2.hasNext())
        {
          do
          {
            if (!localIterator1.hasNext()) {
              break;
            }
            localObject1 = (q_)localIterator1.next();
            localObject2 = ((q_)localObject1).a();
            bool1 = ((q_)localObject1).d();
            d5 = bool1 ? ((a.d.w)localObject2).a : ((a.d.w)localObject2).a + d2;
            bool2 = ((q_)localObject1).c();
            d7 = bool2 ? ((a.d.w)localObject2).b : ((a.d.w)localObject2).b + d3;
            int i = 0;
            do
            {
              do
              {
                if (i >= this.q.size()) {
                  break label770;
                }
                localue2 = (ue)this.q.get(i);
                a(localue2, paramw, bool1, bool2, d5, d7, localArrayList);
                i++;
                if ((!bool4) && (bool3)) {
                  break;
                }
              } while (!bool3);
            } while (bool4);
          } while (k().isEmpty());
          if ((bool4) || (bool3)) {
            break label867;
          }
          localIterator2 = k().iterator();
        }
        ue localue2 = (ue)localIterator2.next();
        a(localue2, paramw, bool1, bool2, d5, d7, localArrayList);
      } while ((!bool4) && ((!bool3) && (!bool3)));
    }
    if (!bool4) {
      label867:
      if ((bool4) || (this.C))
      {
        if (!bool4) {
          if (Math.abs(d2) < Math.abs(d3))
          {
            if (!bool4)
            {
              if (Math.abs(d2) >= d1) {
                break label991;
              }
              localArrayList.add(new ve(10.0D, new qb()
              {
                private final a.d.w val$newMouseCoordinates;
                
                public void paint(Graphics2D paramAnonymousGraphics2D)
                {
                  double d1 = Math.min(z.this.l().b, this.val$newMouseCoordinates.b);
                  double d2 = Math.max(z.this.l().b, this.val$newMouseCoordinates.b);
                  paramAnonymousGraphics2D.draw(new Line2D.Double(z.this.l().a, d1 - 60.0D, z.this.l().a, d2 + 60.0D));
                  ue.a(paramAnonymousGraphics2D, z.this.l().a, z.this.l().b);
                }
                
                public Rectangle getBounds()
                {
                  double d1 = Math.min(z.this.l().b, this.val$newMouseCoordinates.b);
                  double d2 = Math.max(z.this.l().b, this.val$newMouseCoordinates.b);
                  return new Rectangle((int)(z.this.l().a - 10.0D), (int)(d1 - 60.0D - 10.0D), 20, (int)(d2 - d1 + 140.0D));
                }
              })
              {
                boolean j;
                
                public boolean a(a.d.w paramAnonymousw1, a.d.w paramAnonymousw2, byte paramAnonymousByte)
                {
                  boolean bool = ld.E;
                  if (((bool) || (this.j)) && ((bool) || (paramAnonymousw2.a == z.this.l().a))) {
                    if (bool) {}
                  }
                  return paramAnonymousw2.b != z.this.l().b;
                }
                
                public byte a(a.d.w paramAnonymousw, Point2D.Double paramAnonymousDouble, byte paramAnonymousByte)
                {
                  if (!ld.E) {}
                  this.j = ((paramAnonymousByte & 0x1) == 0);
                  paramAnonymousDouble.x = z.this.l().a;
                  return (byte)(0x1 | paramAnonymousByte);
                }
              });
            }
            if ((!bool4) && (!bool3)) {
              break label991;
            }
          }
        }
        if ((bool4) || (Math.abs(d3) < d1)) {
          localArrayList.add(new ve(10.0D, new qb()
          {
            private final a.d.w val$newMouseCoordinates;
            
            public void paint(Graphics2D paramAnonymousGraphics2D)
            {
              double d1 = Math.min(z.this.l().a, this.val$newMouseCoordinates.a);
              double d2 = Math.max(z.this.l().a, this.val$newMouseCoordinates.a);
              paramAnonymousGraphics2D.draw(new Line2D.Double(d1 - 60.0D, z.this.l().b, d2 + 60.0D, z.this.l().b));
              ue.a(paramAnonymousGraphics2D, z.this.l().a, z.this.l().b);
            }
            
            public Rectangle getBounds()
            {
              double d1 = Math.min(z.this.l().a, this.val$newMouseCoordinates.a);
              double d2 = Math.max(z.this.l().a, this.val$newMouseCoordinates.a);
              return new Rectangle((int)(d1 - 60.0D - 10.0D), (int)(z.this.l().b - 20.0D), (int)(d2 - d1 + 130.0D), 40);
            }
          })
          {
            boolean j;
            
            public boolean a(a.d.w paramAnonymousw1, a.d.w paramAnonymousw2, byte paramAnonymousByte)
            {
              boolean bool = ld.E;
              if (((bool) || (this.j)) && ((bool) || (paramAnonymousw2.a != z.this.l().a))) {
                if (bool) {}
              }
              return paramAnonymousw2.b == z.this.l().b;
            }
            
            public byte a(a.d.w paramAnonymousw, Point2D.Double paramAnonymousDouble, byte paramAnonymousByte)
            {
              if (!ld.E) {}
              this.j = ((paramAnonymousByte & 0x2) == 0);
              paramAnonymousDouble.y = z.this.l().b;
              return (byte)(0x2 | paramAnonymousByte);
            }
          });
        }
      }
    }
    label991:
    return a(localArrayList, paramw);
  }
  
  private void a(ue paramue, a.d.w paramw, boolean paramBoolean1, boolean paramBoolean2, double paramDouble1, double paramDouble2, List paramList)
  {
    boolean bool = ld.E;
    double d;
    if (!bool) {
      if (paramue.c() == 0)
      {
        if (((!bool) && (paramBoolean2)) || ((!bool) && ((paramue.e() > paramDouble1) || ((!bool) && (paramue.f() < paramDouble1))))) {
          return;
        }
        d = paramue.b().b - paramDouble2;
        if (!bool)
        {
          if (Math.abs(d) >= 5.0D) {
            return;
          }
          paramList.add(ve.a(0.1D, paramue, false, paramw.b + d));
        }
        if ((!bool) && (!ld.D)) {
          return;
        }
      }
    }
    if (((bool) || (!paramBoolean1)) && ((bool) || ((paramue.e() <= paramDouble2) && ((bool) || (paramue.f() >= paramDouble2)))))
    {
      d = paramue.b().a - paramDouble1;
      if ((bool) || (Math.abs(d) < 5.0D)) {
        paramList.add(ve.a(0.1D, paramue, true, paramw.a + d));
      }
    }
  }
  
  private void a(ue paramue, Rectangle2D paramRectangle2D, a.d.w paramw, double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4, double paramDouble5, List paramList)
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    if (!bool2) {}
    double d1;
    double d2;
    double d3;
    ue localue1;
    switch (paramue.d())
    {
    case 16: 
      double d4;
      ue localue2;
      if (!bool2) {
        if (paramue.c() == 1)
        {
          if ((!bool2) && ((paramDouble2 >= paramue.f()) || ((!bool2) && (paramDouble4 <= paramue.e())))) {
            break;
          }
          d1 = (paramDouble1 + paramDouble3) * 0.5D;
          d2 = paramue.b().a - d1;
          d3 = Math.abs(d2);
          if ((!bool2) && (d3 >= paramDouble5)) {
            break;
          }
          d4 = paramDouble5 - d3;
          if (!bool2) {}
          localue2 = (paramue instanceof wd) ? ((wd)paramue).a(paramRectangle2D) : paramue;
          paramList.add(ve.a(d4 * paramue.a(), localue2, true, paramw.a + d2, paramue.g()));
          if ((!bool2) && (!bool1)) {
            break;
          }
        }
      }
      if ((bool2) || ((paramDouble1 < paramue.f()) && ((bool2) || (paramDouble3 > paramue.e()))))
      {
        d1 = (paramDouble2 + paramDouble4) * 0.5D;
        d2 = paramue.b().b - d1;
        d3 = Math.abs(d2);
        if ((bool2) || (d3 < paramDouble5))
        {
          d4 = paramDouble5 - d3;
          if (!bool2) {}
          localue2 = (paramue instanceof wd) ? ((wd)paramue).a(paramRectangle2D) : paramue;
          paramList.add(ve.a(d4 * paramue.a(), localue2, false, paramw.b + d2, paramue.g()));
        }
      }
      break;
    case 1: 
      if (((bool2) || (bool1)) && ((bool2) || ((paramDouble1 < paramue.f()) && ((bool2) || (paramDouble3 > paramue.e())))))
      {
        d1 = paramue.b().b - paramDouble2;
        d2 = Math.abs(d1);
        if ((bool2) || (d2 < paramDouble5))
        {
          d3 = paramDouble5 - d2;
          if (!bool2) {}
          localue1 = (paramue instanceof wd) ? ((wd)paramue).a(paramRectangle2D) : paramue;
          paramList.add(ve.a(d3 * paramue.a(), localue1, false, paramw.b + d1, paramue.g()));
        }
      }
      break;
    case 8: 
      if (((bool2) || (bool1)) && ((bool2) || ((paramDouble2 < paramue.f()) && ((bool2) || (paramDouble4 > paramue.e())))))
      {
        d1 = paramue.b().a - paramDouble3;
        d2 = Math.abs(d1);
        if ((bool2) || (d2 < paramDouble5))
        {
          d3 = paramDouble5 - d2;
          if (!bool2) {}
          localue1 = (paramue instanceof wd) ? ((wd)paramue).a(paramRectangle2D) : paramue;
          paramList.add(ve.a(d3 * paramue.a(), localue1, true, paramw.a + d1, paramue.g()));
        }
      }
      break;
    case 2: 
      if (((bool2) || (bool1)) && ((bool2) || ((paramDouble1 < paramue.f()) && ((bool2) || (paramDouble3 > paramue.e())))))
      {
        d1 = paramue.b().b - paramDouble4;
        d2 = Math.abs(d1);
        if ((bool2) || (d2 < paramDouble5))
        {
          d3 = paramDouble5 - d2;
          if (!bool2) {}
          localue1 = (paramue instanceof wd) ? ((wd)paramue).a(paramRectangle2D) : paramue;
          paramList.add(ve.a(d3 * paramue.a(), localue1, false, paramw.b + d1, paramue.g()));
        }
      }
      break;
    case 4: 
      if (((bool2) || (bool1)) && ((bool2) || ((paramDouble2 < paramue.f()) && ((bool2) || (paramDouble4 > paramue.e())))))
      {
        d1 = paramue.b().a - paramDouble1;
        d2 = Math.abs(d1);
        if ((bool2) || (d2 < paramDouble5))
        {
          d3 = paramDouble5 - d2;
          if (!bool2) {}
          localue1 = (paramue instanceof wd) ? ((wd)paramue).a(paramRectangle2D) : paramue;
          paramList.add(ve.a(d3 * paramue.a(), localue1, true, paramw.a + d1, paramue.g()));
        }
      }
      break;
    }
  }
  
  private void a(t_ paramt_, double paramDouble1, double paramDouble2, double paramDouble3, List paramList, ue paramue)
  {
    ve localve = paramt_.a(paramue, l(), paramDouble1, paramDouble2, paramDouble3);
    if (localve != ve.h) {
      paramList.add(localve);
    }
  }
  
  private void a(double paramDouble1, lb paramlb, double paramDouble2, List paramList, boolean paramBoolean)
  {
    boolean bool2 = ld.E;
    boolean bool1 = ld.D;
    if (!bool2) {
      if (paramlb.c() == 0) {
        return;
      }
    }
    lb.b_ localb_1 = paramlb.c(new i_(paramDouble2, null, null));
    if (!bool2) {}
    lb.b_ localb_2 = localb_1 != null ? localb_1.a() : paramlb.g();
    double d1 = (bool2) || (localb_1 != null) ? ((i_)localb_1.c()).a : (1.0D / 0.0D);
    double d2 = (bool2) || (localb_2 != null) ? ((i_)localb_2.c()).a : (1.0D / 0.0D);
    double d3 = d1 - paramDouble2;
    double d4 = d2 - paramDouble2;
    i_ locali_;
    if (!bool2) {
      if (Math.abs(d3) < paramDouble1)
      {
        if (Math.abs(d4) < Math.abs(d3))
        {
          locali_ = (i_)localb_2.c();
          if (!bool2) {
            if (!bool1) {
              break label233;
            }
          }
        }
        else
        {
          locali_ = (i_)localb_1.c();
        }
        if ((!bool2) && (!bool1)) {
          break label233;
        }
      }
    }
    if (Math.abs(d4) < paramDouble1)
    {
      locali_ = (i_)localb_2.c();
      if (!bool1) {}
    }
    else
    {
      locali_ = null;
    }
    label233:
    if (locali_ != null) {
      do
      {
        if (localb_2 == null) {
          break;
        }
        break;
        if (bool1) {
          break label328;
        }
        if (((i_)localb_2.c()).a != locali_.a) {
          break;
        }
        paramList.add(((i_)localb_2.c()).a(paramBoolean));
        localb_2 = localb_2.a();
      } while (!bool1);
    }
    label328:
    label364:
    while (bool2) {
      do
      {
        for (;;)
        {
          break;
          if (!bool2)
          {
            if ((localb_1 == null) || (((i_)localb_1.c()).a != locali_.a)) {
              break label364;
            }
            paramList.add(((i_)localb_1.c()).a(paramBoolean));
            localb_1 = localb_1.b();
          }
        }
      } while (!bool1);
    }
  }
  
  protected void a(e parame, Collection paramCollection1, Collection paramCollection2)
  {
    g localg = d().a();
    ld localld = localg.w(parame);
    if ((ld.E) || (a(localld))) {
      a(parame, localld, paramCollection1, paramCollection2);
    }
  }
  
  private static class ab_
    extends ve
  {
    private pg j;
    private double k;
    private a.d.w l;
    private List m;
    private List n;
    
    public ab_(double paramDouble1, pg parampg, double paramDouble2, a.d.w paramw, List paramList)
    {
      super();
      if (!ld.E)
      {
        if (paramList.isEmpty()) {
          throw new IllegalArgumentException("movingObjects is empty.");
        }
        this.j = parampg;
        this.k = paramDouble2;
        this.l = paramw;
        this.m = paramList;
        this.n = new ArrayList();
      }
    }
    
    public byte a(a.d.w paramw, Point2D.Double paramDouble, byte paramByte)
    {
      boolean bool = ld.E;
      double d1 = paramDouble.x - this.l.a;
      double d2 = paramDouble.y - this.l.b;
      a.d.z localz = a(d1, d2);
      double d3 = Math.abs(localz.a());
      double d4 = Math.abs(localz.b());
      double d5 = this.k / this.j.M();
      if (!bool) {
        if (Math.max(d3, d4) < d5)
        {
          paramDouble.x += localz.a();
          paramDouble.y += localz.b();
          return 3;
        }
      }
      if (!bool) {
        if (d3 < d5)
        {
          paramDouble.x += localz.a();
          return 1;
        }
      }
      if (!bool) {
        if (d4 < d5)
        {
          paramDouble.y += localz.b();
          return 2;
        }
      }
      return 0;
    }
    
    private a.d.z a(double paramDouble1, double paramDouble2)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      Object localObject1 = null;
      Object localObject2 = null;
      double d1 = 1.7976931348623157E+308D;
      double d2 = 1.7976931348623157E+308D;
      double d3 = this.j.w();
      int i = 0;
      if (i < this.m.size()) {}
      label149:
      label154:
      while (bool2)
      {
        z.j_ localj_ = (z.j_)this.m.get(i);
        if (bool2) {
          break label192;
        }
        double d5 = localj_.c(d3, paramDouble1, paramDouble2);
        if (bool1) {
          break label186;
        }
        if (!bool2) {
          if (d5 < d1)
          {
            d2 = d1;
            d1 = d5;
            localObject2 = localObject1;
            localObject1 = localj_;
            if (bool2) {
              break label154;
            }
            if (!bool1) {
              break label149;
            }
          }
        }
        if (!bool2)
        {
          if (d5 < d2)
          {
            d2 = d5;
            localObject2 = localj_;
          }
          i++;
        }
        if (!bool1) {
          break;
        }
      }
      if (!bool2) {
        if (localObject1 == null) {
          return new a.d.z(1.7976931348623157E+308D, 1.7976931348623157E+308D);
        }
      }
      label186:
      label192:
      a.d.z localz1 = localObject1.a(d3, paramDouble1, paramDouble2);
      if (localObject2 == null) {
        return localz1;
      }
      double d4 = localz1.a();
      double d6 = localz1.b();
      a.d.z localz2 = localObject1.a(d3, paramDouble1, paramDouble2);
      if (!bool2)
      {
        if (localz2.a() < 1.7976931348623157E+308D)
        {
          if (bool2) {
            break label281;
          }
          if (localObject1.b()) {
            d4 = localz2.a();
          }
        }
        if (bool2) {
          break label310;
        }
      }
      if (localz2.b() < 1.7976931348623157E+308D) {
        label281:
        if (localObject1.a()) {
          d6 = localz2.b();
        }
      }
      label310:
      return new a.d.z(d4, d6);
    }
    
    public boolean a(a.d.w paramw1, a.d.w paramw2, byte paramByte)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      this.n.clear();
      double d1 = paramw2.a - this.l.a;
      double d2 = paramw2.b - this.l.b;
      double d3 = this.j.w();
      int i = 0;
      if (i < this.m.size()) {}
      while (bool2)
      {
        z.j_ localj_ = (z.j_)this.m.get(i);
        double d4 = localj_.b(d3, d1, d2);
        if (bool1) {
          break label148;
        }
        if (d4 == 0.0D) {
          this.n.add(localj_);
        }
        i++;
        if (!bool1) {
          break;
        }
      }
      label148:
      return !this.n.isEmpty();
    }
    
    public qb a(w paramw, a.d.w paramw1)
    {
      return new z.3(this, paramw1);
    }
  }
  
  private static class j_
  {
    private boolean a;
    private boolean b;
    private a.d.w c;
    private double e;
    private double f;
    
    public j_(a.d.w paramw, boolean paramBoolean1, boolean paramBoolean2, double paramDouble1, double paramDouble2)
    {
      this.c = paramw;
      this.a = paramBoolean1;
      this.b = paramBoolean2;
      this.e = paramDouble1;
      this.f = paramDouble2;
    }
    
    public j_(a.d.w paramw, double paramDouble1, double paramDouble2)
    {
      this(paramw, false, false, paramDouble1, paramDouble2);
    }
    
    public boolean a()
    {
      return this.b;
    }
    
    public boolean b()
    {
      return this.a;
    }
    
    public double c()
    {
      return this.e;
    }
    
    public double d()
    {
      return this.f;
    }
    
    public a.d.w a(double paramDouble1, double paramDouble2)
    {
      return new a.d.w(a(paramDouble1), c(paramDouble2));
    }
    
    public a.d.z a(double paramDouble1, double paramDouble2, double paramDouble3)
    {
      boolean bool = ld.E;
      double d1 = b(a(paramDouble2), paramDouble1);
      if (!bool) {
        if (b())
        {
          if (bool) {
            break label55;
          }
          if (Math.abs(d1) > 0.0D) {
            d1 = 1.7976931348623157E+308D;
          }
        }
      }
      label55:
      double d2 = b(c(paramDouble3), paramDouble1);
      if ((bool) || ((a()) && ((bool) || (Math.abs(d2) > 0.0D)))) {
        d2 = 1.7976931348623157E+308D;
      }
      return new a.d.z(d1, d2);
    }
    
    public double b(double paramDouble1, double paramDouble2, double paramDouble3)
    {
      a.d.z localz = a(paramDouble1, paramDouble2, paramDouble3);
      return Math.max(Math.abs(localz.a()), Math.abs(localz.b()));
    }
    
    public double c(double paramDouble1, double paramDouble2, double paramDouble3)
    {
      a.d.z localz = a(paramDouble1, paramDouble2, paramDouble3);
      return Math.min(Math.abs(localz.a()), Math.abs(localz.b()));
    }
    
    public final double a(double paramDouble)
    {
      if (!ld.E) {
        if (b()) {
          return this.c.a;
        }
      }
      return this.c.a + paramDouble;
    }
    
    public final double c(double paramDouble)
    {
      if (!ld.E) {
        if (a()) {
          return this.c.b;
        }
      }
      return this.c.b + paramDouble;
    }
    
    private static double b(double paramDouble1, double paramDouble2)
    {
      return Math.floor(paramDouble1 / paramDouble2 + 0.5D) * paramDouble2 - paramDouble1;
    }
  }
  
  public static class s_
    extends z.q_
  {
    private zd b;
    public static boolean e;
    
    public s_(zd paramzd, a.d.w paramw, byte paramByte)
    {
      super(paramByte);
      this.b = paramzd;
    }
    
    public zd e()
    {
      return this.b;
    }
    
    public void b(double paramDouble1, double paramDouble2)
    {
      boolean bool = ld.E;
      tb localtb = this.b.c();
      if (!bool) {
        if (localtb.k() == this.b)
        {
          if (bool) {
            break label54;
          }
          localld = localtb.h();
          if (!ld.D) {
            break label56;
          }
        }
      }
      label54:
      ld localld = localtb.g();
      label56:
      double d1 = localld.A();
      double d2 = localld.B();
      this.b.b(a(paramDouble1) - d1, c(paramDouble2) - d2);
    }
  }
  
  public static final class r_
    extends z.q_
  {
    private eb b;
    public static int e;
    
    public r_(eb parameb, a.d.w paramw, byte paramByte)
    {
      super(paramByte);
      this.b = parameb;
    }
    
    public eb e()
    {
      return this.b;
    }
    
    public void b(double paramDouble1, double paramDouble2)
    {
      this.b.a(a(paramDouble1), c(paramDouble2));
    }
  }
  
  private static final class l_
    extends z.k_
  {
    final ue b;
    final double c;
    final double d;
    final l_ e;
    lb.b_ g;
    
    public l_(ue paramue, double paramDouble1, double paramDouble2, double paramDouble3, l_ paraml_)
    {
      super(null);
      this.b = paramue;
      this.c = paramDouble2;
      this.d = paramDouble3;
      this.e = paraml_;
    }
  }
  
  private static final class m_
    extends z.k_
  {
    final double b;
    final boolean d;
    final double e;
    
    public m_(double paramDouble1, double paramDouble2, double paramDouble3, boolean paramBoolean)
    {
      super(null);
      this.b = paramDouble2;
      this.e = paramDouble3;
      this.d = paramBoolean;
    }
  }
  
  private static class k_
    implements Comparable
  {
    double a;
    
    private k_(double paramDouble)
    {
      this.a = paramDouble;
    }
    
    public int compareTo(Object paramObject)
    {
      k_ localk_ = (k_)paramObject;
      return l.a(this.a, localk_.a);
    }
    
    k_(double paramDouble, z.27 param27)
    {
      this(paramDouble);
    }
  }
  
  public static abstract class q_
  {
    final byte a;
    final a.d.w c;
    public static boolean d;
    
    protected q_(a.d.w paramw, byte paramByte)
    {
      this.c = paramw;
      this.a = paramByte;
    }
    
    public final a.d.w a()
    {
      return this.c;
    }
    
    public final boolean b()
    {
      if (!ld.E) {}
      return (this.a & 0x3) == 3;
    }
    
    public final boolean c()
    {
      if (!ld.E) {}
      return (this.a & 0x2) == 0;
    }
    
    public final boolean d()
    {
      if (!ld.E) {}
      return (this.a & 0x1) == 0;
    }
    
    final a.d.w a(double paramDouble1, double paramDouble2)
    {
      return new a.d.w(a(paramDouble1), c(paramDouble2));
    }
    
    final double a(double paramDouble)
    {
      if (!ld.E) {
        if ((this.a & 0x1) == 0) {
          return this.c.a;
        }
      }
      return this.c.a + paramDouble;
    }
    
    final double c(double paramDouble)
    {
      if (!ld.E) {
        if ((this.a & 0x2) == 0) {
          return this.c.b;
        }
      }
      return this.c.b + paramDouble;
    }
    
    public abstract void b(double paramDouble1, double paramDouble2);
  }
  
  static final class eb_
    extends Rectangle2D
  {
    private final ld a;
    
    protected eb_(ld paramld)
    {
      this.a = paramld;
    }
    
    public Rectangle2D createIntersection(Rectangle2D paramRectangle2D)
    {
      return null;
    }
    
    public Rectangle2D createUnion(Rectangle2D paramRectangle2D)
    {
      return null;
    }
    
    public int outcode(double paramDouble1, double paramDouble2)
    {
      return 0;
    }
    
    public void setRect(double paramDouble1, double paramDouble2, double paramDouble3, double paramDouble4) {}
    
    public double getHeight()
    {
      return this.a.d();
    }
    
    public double getWidth()
    {
      return this.a.c();
    }
    
    public double getX()
    {
      return this.a.a();
    }
    
    public double getY()
    {
      return this.a.b();
    }
    
    public boolean isEmpty()
    {
      return false;
    }
  }
  
  public static final class t_
  {
    final boolean a;
    private final z.q_ b;
    private final z.q_ c;
    private final boolean d;
    public static int e;
    
    public z.q_ a()
    {
      return this.c;
    }
    
    public z.q_ b()
    {
      return this.b;
    }
    
    void a(double paramDouble1, double paramDouble2)
    {
      this.b.b(paramDouble1, paramDouble2);
      this.c.b(paramDouble1, paramDouble2);
    }
    
    public t_(z.q_ paramq_1, z.q_ paramq_2)
    {
      double d1 = paramq_1.a().a - paramq_2.a().a;
      double d2 = paramq_1.a().b - paramq_2.a().b;
      if (!bool2) {
        if (d1 == 0.0D) {
          if (!bool2)
          {
            if (d2 == 0.0D)
            {
              if (bool2) {
                break label110;
              }
              if (paramq_1.c() == paramq_2.c()) {}
            }
            else
            {
              this.a = true;
              this.d = true;
              if (bool2) {
                return;
              }
            }
          }
          else {
            if (!bool1) {
              break label175;
            }
          }
        }
      }
      label110:
      if ((bool2) || (d2 == 0.0D))
      {
        if (!bool2) {
          if (d1 == 0.0D)
          {
            if (!bool2) {
              if (paramq_1.d() == paramq_2.d()) {
                break label165;
              }
            }
          }
          else
          {
            this.a = false;
            this.d = true;
            if (bool2) {
              return;
            }
          }
        }
        if (!bool1) {
          break label175;
        }
      }
      label165:
      this.d = false;
      this.a = true;
      label175:
      this.b = paramq_1;
      this.c = paramq_2;
    }
    
    ve a(ue paramue, a.d.w paramw, double paramDouble1, double paramDouble2, double paramDouble3)
    {
      boolean bool = ld.E;
      if (!bool) {
        if (!this.d) {
          return ve.h;
        }
      }
      if (!bool) {}
      if (this.a == (paramue.c() == 1))
      {
        a.d.w localw = paramue.b();
        double d1;
        double d2;
        double d3;
        if (this.a)
        {
          d1 = localw.a - this.b.a(paramDouble1);
          if ((bool) || (Math.abs(d1) < paramDouble3))
          {
            d2 = Math.min(this.b.c(paramDouble2), this.c.c(paramDouble2));
            d3 = Math.max(this.b.c(paramDouble2), this.c.c(paramDouble2));
            if (((bool) || (d2 < paramue.f())) && ((bool) || (d3 > paramue.e())))
            {
              if ((paramue instanceof wd)) {
                return new z.28(this, 0.5D * paramue.a(), null, true, paramw.a + paramDouble1 + d1, paramue.g(), paramue);
              }
              return ve.a(0.5D * paramue.a(), paramue, true, paramw.a + paramDouble1 + d1, paramue.g());
            }
          }
        }
        else
        {
          d1 = localw.b - this.b.c(paramDouble2);
          if ((bool) || (Math.abs(d1) < paramDouble3))
          {
            d2 = Math.min(this.b.a(paramDouble1), this.c.a(paramDouble1));
            d3 = Math.max(this.b.a(paramDouble1), this.c.a(paramDouble1));
            if (((bool) || (d2 < paramue.f())) && ((bool) || (d3 > paramue.e())))
            {
              if ((paramue instanceof wd)) {
                return new z.29(this, 0.5D * paramue.a(), null, false, paramw.b + paramDouble2 + d1, paramue.g(), paramue);
              }
              return ve.a(0.5D * paramue.a(), paramue, false, paramw.b + paramDouble2 + d1, paramue.g());
            }
          }
        }
      }
      return ve.h;
    }
  }
  
  private static class x_
    extends z.w_
  {
    private final double s;
    
    public x_(byte paramByte1, byte paramByte2, a.d.w paramw, double paramDouble1, double paramDouble2, Object paramObject, double paramDouble3, double paramDouble4, double paramDouble5, double paramDouble6)
    {
      super(paramByte2, paramw, paramDouble1, paramDouble2, paramObject, paramDouble3, paramDouble4, paramDouble5);
      this.s = paramDouble6;
    }
    
    public qb a(Rectangle2D paramRectangle2D)
    {
      return new z.2(this, paramRectangle2D);
    }
    
    public Rectangle b(Rectangle2D paramRectangle2D)
    {
      if (!ld.E) {
        if (c() == 0)
        {
          d2 = Math.min(paramRectangle2D.getX(), e()) - 8.0D;
          d3 = Math.max(paramRectangle2D.getX(), b().a);
          d1 = d() == 1 ? paramRectangle2D.getY() : paramRectangle2D.getY() + paramRectangle2D.getHeight();
          localDouble = new Rectangle2D.Double(Math.min(d2, d3), Math.min(Math.min(this.s, d1), Math.min(this.q, this.r)), Math.abs(d3 - d2), 0.0D);
          localDouble.height = (Math.max(Math.max(this.s, d1), Math.max(this.q, this.r)) - localDouble.y);
          localRectangle = localDouble.getBounds();
          localRectangle.grow(20, 20);
          return localRectangle;
        }
      }
      double d1 = d() == 4 ? paramRectangle2D.getX() : paramRectangle2D.getX() + paramRectangle2D.getWidth();
      double d2 = Math.min(paramRectangle2D.getY(), e()) - 8.0D;
      double d3 = Math.max(paramRectangle2D.getY(), b().b);
      Rectangle2D.Double localDouble = new Rectangle2D.Double(Math.min(Math.min(this.s, d1), Math.min(this.q, this.r)), Math.min(d2, d3), 0.0D, Math.abs(d3 - d2));
      localDouble.width = (Math.max(Math.max(this.s, d1), Math.max(this.q, this.r)) - localDouble.x);
      Rectangle localRectangle = localDouble.getBounds();
      localRectangle.grow(20, 20);
      return localRectangle;
    }
    
    public void a(Graphics2D paramGraphics2D, Rectangle2D paramRectangle2D)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      if (!bool2) {
        if (c() == 0)
        {
          d2 = Math.min(paramRectangle2D.getX(), e()) - 8.0D;
          d3 = Math.max(paramRectangle2D.getX(), b().a);
          d1 = d() == 1 ? paramRectangle2D.getY() : paramRectangle2D.getY() + paramRectangle2D.getHeight();
          if (bool2) {
            break label152;
          }
          if (!bool1) {
            break label148;
          }
        }
      }
      double d1 = d() == 4 ? paramRectangle2D.getX() : paramRectangle2D.getX() + paramRectangle2D.getWidth();
      double d2 = Math.min(paramRectangle2D.getY(), e()) - 8.0D;
      double d3 = Math.max(paramRectangle2D.getY(), b().b);
      label148:
      label152:
      if (!bool2)
      {
        if (c() == 0)
        {
          paramGraphics2D.draw(new Line2D.Double(d2, this.q, d3, this.q));
          paramGraphics2D.draw(new Line2D.Double(d2, this.r, d3, this.r));
          paramGraphics2D.draw(new Line2D.Double(d2, this.s, d3, this.s));
          paramGraphics2D.draw(new Line2D.Double(d2, d1, d3, d1));
          w.a(paramGraphics2D, d2, this.q, d2, this.r);
          w.a(paramGraphics2D, d2, this.s, d2, d1);
          if (bool2) {
            break label387;
          }
        }
      }
      else if (!bool1) {
        return;
      }
      paramGraphics2D.draw(new Line2D.Double(this.q, d2, this.q, d3));
      paramGraphics2D.draw(new Line2D.Double(this.r, d2, this.r, d3));
      paramGraphics2D.draw(new Line2D.Double(this.s, d2, this.s, d3));
      paramGraphics2D.draw(new Line2D.Double(d1, d2, d1, d3));
      w.a(paramGraphics2D, this.q, d2, this.r, d2);
      label387:
      w.a(paramGraphics2D, this.s, d2, d1, d2);
    }
  }
  
  private static class w_
    extends ue
    implements wd
  {
    protected final double q;
    protected final double r;
    
    public w_(byte paramByte1, byte paramByte2, a.d.w paramw, double paramDouble1, double paramDouble2, Object paramObject, double paramDouble3, double paramDouble4, double paramDouble5)
    {
      super(paramByte2, paramw, paramDouble1, paramDouble2, paramObject, paramDouble3);
      this.q = paramDouble4;
      this.r = paramDouble5;
    }
    
    public qb a(Rectangle2D paramRectangle2D)
    {
      return new z.1(this, paramRectangle2D);
    }
    
    public Rectangle b(Rectangle2D paramRectangle2D)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      if (!bool2) {
        if (c() == 0)
        {
          if (!bool2) {
            if (paramRectangle2D.getCenterX() < b().a)
            {
              d5 = Math.min(paramRectangle2D.getX(), e()) - 8.0D;
              d6 = Math.max(paramRectangle2D.getX(), b().a);
              if (bool2) {
                break label106;
              }
              if (!bool1) {
                break label128;
              }
            }
          }
          d6 = Math.min(paramRectangle2D.getX() + paramRectangle2D.getWidth(), b().a);
          label106:
          d5 = Math.max(paramRectangle2D.getX() + paramRectangle2D.getWidth(), f()) + 8.0D;
          label128:
          d1 = this.q;
          d2 = this.r;
          d3 = paramRectangle2D.getY();
          d4 = d3 + paramRectangle2D.getHeight();
          localDouble = new Rectangle2D.Double(Math.min(d5, d6), Math.min(Math.min(d3, d4), Math.min(d1, d2)), Math.abs(d6 - d5), 0.0D);
          localDouble.height = (Math.max(Math.max(d3, d4), Math.max(d1, d2)) - localDouble.y);
          localRectangle = localDouble.getBounds();
          localRectangle.grow(20, 20);
          return localRectangle;
        }
      }
      double d1 = this.q;
      double d2 = this.r;
      double d3 = paramRectangle2D.getX();
      double d4 = paramRectangle2D.getX() + paramRectangle2D.getWidth();
      if (!bool2) {
        if (paramRectangle2D.getCenterY() < b().b)
        {
          d5 = Math.min(paramRectangle2D.getY(), e()) - 8.0D;
          d6 = Math.max(paramRectangle2D.getY(), b().b);
          if (bool2) {
            break label353;
          }
          if (!bool1) {
            break label375;
          }
        }
      }
      double d6 = Math.min(paramRectangle2D.getY() + paramRectangle2D.getHeight(), b().b);
      label353:
      double d5 = Math.max(paramRectangle2D.getY() + paramRectangle2D.getHeight(), f()) + 8.0D;
      label375:
      Rectangle2D.Double localDouble = new Rectangle2D.Double(Math.min(Math.min(d3, d4), Math.min(d1, d2)), Math.min(d5, d6), 0.0D, Math.abs(d6 - d5));
      localDouble.width = (Math.max(Math.max(d3, d4), Math.max(d1, d2)) - localDouble.x);
      Rectangle localRectangle = localDouble.getBounds();
      localRectangle.grow(20, 20);
      return localRectangle;
    }
    
    public void a(Graphics2D paramGraphics2D, Rectangle2D paramRectangle2D)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      if (!bool2) {
        if (c() == 0)
        {
          if (!bool2) {
            if (paramRectangle2D.getCenterX() < b().a)
            {
              d5 = Math.min(paramRectangle2D.getX(), e()) - 8.0D;
              d6 = Math.max(paramRectangle2D.getX(), b().a);
              if (bool2) {
                break label106;
              }
              if (!bool1) {
                break label128;
              }
            }
          }
          d6 = Math.min(paramRectangle2D.getX() + paramRectangle2D.getWidth(), b().a);
          label106:
          d5 = Math.max(paramRectangle2D.getX() + paramRectangle2D.getWidth(), f()) + 8.0D;
          label128:
          d1 = this.q;
          d2 = this.r;
          d3 = paramRectangle2D.getY();
          d4 = d3 + paramRectangle2D.getHeight();
          if (bool2) {
            break label302;
          }
          if (!bool1) {
            break label298;
          }
        }
      }
      double d1 = this.q;
      double d2 = this.r;
      double d3 = paramRectangle2D.getX();
      double d4 = paramRectangle2D.getX() + paramRectangle2D.getWidth();
      if (!bool2) {
        if (paramRectangle2D.getCenterY() < b().b)
        {
          d5 = Math.min(paramRectangle2D.getY(), e()) - 8.0D;
          d6 = Math.max(paramRectangle2D.getY(), b().b);
          if (bool2) {
            break label302;
          }
          if (!bool1) {
            break label298;
          }
        }
      }
      double d6 = Math.min(paramRectangle2D.getY() + paramRectangle2D.getHeight(), b().b);
      double d5 = Math.max(paramRectangle2D.getY() + paramRectangle2D.getHeight(), f()) + 8.0D;
      label298:
      label302:
      if (!bool2)
      {
        if (c() == 0)
        {
          paramGraphics2D.draw(new Line2D.Double(d5, d1, d6, d1));
          paramGraphics2D.draw(new Line2D.Double(d5, d2, d6, d2));
          paramGraphics2D.draw(new Line2D.Double(d5, d3, d6, d3));
          paramGraphics2D.draw(new Line2D.Double(d5, d4, d6, d4));
          w.a(paramGraphics2D, d5, d1, d5, d3);
          w.a(paramGraphics2D, d5, d4, d5, d2);
          if (bool2) {
            break label502;
          }
        }
      }
      else if (!bool1) {
        return;
      }
      paramGraphics2D.draw(new Line2D.Double(d1, d5, d1, d6));
      paramGraphics2D.draw(new Line2D.Double(d2, d5, d2, d6));
      paramGraphics2D.draw(new Line2D.Double(d3, d5, d3, d6));
      paramGraphics2D.draw(new Line2D.Double(d4, d5, d4, d6));
      w.a(paramGraphics2D, d1, d5, d3, d5);
      label502:
      w.a(paramGraphics2D, d2, d5, d4, d5);
    }
  }
  
  private static class u_
    extends ue
    implements wd
  {
    u_(byte paramByte1, byte paramByte2, a.d.w paramw, double paramDouble1, double paramDouble2, Object paramObject, double paramDouble3)
    {
      super(paramByte2, paramw, paramDouble1, paramDouble2, paramObject, paramDouble3);
    }
    
    u_(byte paramByte1, byte paramByte2, a.d.w paramw, Object paramObject, double paramDouble)
    {
      super(paramByte2, paramw, paramObject, paramDouble);
    }
    
    public qb a(Rectangle2D paramRectangle2D)
    {
      return new z.0(this, paramRectangle2D);
    }
    
    protected Rectangle b(Rectangle2D paramRectangle2D)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      double d1 = d3 = b().a;
      double d4;
      double d2 = d4 = b().b;
      if (!bool2) {}
      switch (d())
      {
      case 16: 
      default: 
        if (!bool2) {
          if (c() == 0)
          {
            d3 = paramRectangle2D.getCenterX();
            if (!bool2) {
              if (!bool1) {
                break label158;
              }
            }
          }
          else
          {
            d4 = paramRectangle2D.getCenterY();
          }
        }
        if (!bool2) {
          if (!bool1) {
            break label158;
          }
        }
      case 4: 
      case 8: 
        if (!bool2)
        {
          d4 = paramRectangle2D.getCenterY();
          if (!bool1) {
            break label158;
          }
        }
        break;
      }
      double d3 = paramRectangle2D.getCenterX();
      label158:
      Rectangle localRectangle = new Rectangle((int)d1, (int)d2, 0, 0);
      localRectangle.add(d3, d4);
      localRectangle.grow(22, 22);
      return localRectangle;
    }
    
    protected void a(Graphics2D paramGraphics2D, Rectangle2D paramRectangle2D)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      double d3;
      double d1 = d3 = b().a;
      double d4;
      double d2 = d4 = b().b;
      int i;
      if (!bool2)
      {
        switch (d())
        {
        case 16: 
        default: 
          if (!bool2)
          {
            if (c() == 0)
            {
              d3 = paramRectangle2D.getCenterX();
              i = 1;
              if (bool2) {
                break label172;
              }
              if (!bool1) {
                break;
              }
            }
            d4 = paramRectangle2D.getCenterY();
          }
          i = 0;
          if (bool2) {
            break label172;
          }
          if (!bool1) {
            break;
          }
        case 4: 
        case 8: 
          d4 = paramRectangle2D.getCenterY();
          i = 0;
          if (bool2) {
            break label172;
          }
          if (!bool1) {
            break;
          }
        }
      }
      else
      {
        i = 1;
        d3 = paramRectangle2D.getCenterX();
      }
      label172:
      if (!bool2)
      {
        if (i != 0)
        {
          paramGraphics2D.draw(new Line2D.Double(Math.min(d1, d3) - 20.0D, d2, Math.max(d1, d3) + 20.0D, d4));
          if (bool2) {
            return;
          }
        }
      }
      else {
        if (!bool1) {
          break label261;
        }
      }
      paramGraphics2D.draw(new Line2D.Double(d1, Math.min(d2, d4) - 20.0D, d3, Math.max(d2, d4) + 20.0D));
      label261:
      a(paramGraphics2D, d1, d2);
      a(paramGraphics2D, d3, d4);
    }
  }
  
  private static class v_
    extends z.u_
  {
    private final double q;
    
    v_(byte paramByte1, byte paramByte2, a.d.w paramw, double paramDouble1, double paramDouble2, Object paramObject, double paramDouble3, double paramDouble4)
    {
      super(paramByte2, paramw, paramDouble1, paramDouble2, paramObject, paramDouble3);
      this.q = paramDouble4;
    }
    
    protected Rectangle b(Rectangle2D paramRectangle2D)
    {
      Rectangle localRectangle = super.b(paramRectangle2D);
      localRectangle.grow((int)this.q, (int)this.q);
      return localRectangle;
    }
    
    protected void a(Graphics2D paramGraphics2D, Rectangle2D paramRectangle2D)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      a.d.w localw = b();
      if (!bool2) {}
      double d1;
      double d2;
      switch (d())
      {
      case 1: 
        d1 = Math.max(e(), paramRectangle2D.getX());
        d2 = Math.min(f(), paramRectangle2D.getX() + paramRectangle2D.getWidth());
        w.a(paramGraphics2D, (d1 + d2) * 0.5D, localw.b, (d1 + d2) * 0.5D, localw.b - this.q);
        paramGraphics2D.draw(new Line2D.Double(localw.a, localw.b - this.q, (d1 + d2) * 0.5D, localw.b - this.q));
        if (!bool2) {
          if (!bool1) {
            return;
          }
        }
      case 2: 
        d1 = Math.max(e(), paramRectangle2D.getX());
        d2 = Math.min(f(), paramRectangle2D.getX() + paramRectangle2D.getWidth());
        w.a(paramGraphics2D, (d1 + d2) * 0.5D, localw.b, (d1 + d2) * 0.5D, localw.b + this.q);
        paramGraphics2D.draw(new Line2D.Double(localw.a, localw.b + this.q, (d1 + d2) * 0.5D, localw.b + this.q));
        if (!bool2) {
          if (!bool1) {
            return;
          }
        }
      case 4: 
        d1 = Math.max(e(), paramRectangle2D.getY());
        d2 = Math.min(f(), paramRectangle2D.getY() + paramRectangle2D.getHeight());
        w.a(paramGraphics2D, localw.a, (d1 + d2) * 0.5D, localw.a - this.q, (d1 + d2) * 0.5D);
        paramGraphics2D.draw(new Line2D.Double(localw.a - this.q, localw.b, localw.a - this.q, (d1 + d2) * 0.5D));
        if (!bool2) {
          if (!bool1) {
            return;
          }
        }
      case 8: 
        d1 = Math.max(e(), paramRectangle2D.getY());
        d2 = Math.min(f(), paramRectangle2D.getY() + paramRectangle2D.getHeight());
        w.a(paramGraphics2D, localw.a, (d1 + d2) * 0.5D, localw.a + this.q, (d1 + d2) * 0.5D);
        paramGraphics2D.draw(new Line2D.Double(localw.a + this.q, localw.b, localw.a + this.q, (d1 + d2) * 0.5D));
        break;
      }
    }
  }
  
  static abstract class n_
  {
    public void a(o paramo, Collection paramCollection, Rectangle2D paramRectangle2D, boolean paramBoolean)
    {
      boolean bool2 = ld.E;
      boolean bool1 = ld.D;
      ArrayList localArrayList = new ArrayList(paramCollection.size() * 2);
      Object localObject1 = paramCollection.iterator();
      if (((Iterator)localObject1).hasNext()) {}
      Object localObject3;
      double d3;
      double d4;
      label267:
      while (bool2)
      {
        localObject2 = (e)((Iterator)localObject1).next();
        localObject3 = paramo.d(localObject2);
        if (bool1) {
          break label281;
        }
        if (((bool2) || (paramRectangle2D != null)) && ((!bool2) && (!paramRectangle2D.intersects(((zc)localObject3).a(), ((zc)localObject3).b(), ((zc)localObject3).c(), ((zc)localObject3).d())))) {
          break;
        }
        double d1;
        double d2;
        if (paramBoolean)
        {
          d1 = ((zc)localObject3).a();
          d2 = d1 + ((zc)localObject3).c();
          d3 = ((zc)localObject3).b();
          d4 = d3 + ((zc)localObject3).d();
          if (bool2) {
            break label267;
          }
          if (!bool1) {}
        }
        else
        {
          d1 = ((zc)localObject3).b();
          d2 = d1 + ((zc)localObject3).d();
          d3 = ((zc)localObject3).a();
          d4 = d3 + ((zc)localObject3).c();
        }
        localArrayList.add(new a_(d1, (e)localObject2, true, d3, d4));
        localArrayList.add(new a_(d2, (e)localObject2, false, d3, d4));
        if (!bool1) {
          break;
        }
      }
      l.a(localArrayList, null);
      label281:
      localObject1 = new lb();
      ((lb)localObject1).a(new b_(-1.797693134862316E+308D, null, null));
      ((lb)localObject1).a(new b_(1.7976931348623157E+308D, null, null));
      Object localObject2 = localArrayList.iterator();
      label333:
      label340:
      do
      {
        lb.b_ localb_2;
        lb.b_ localb_3;
        do
        {
          if (!((Iterator)localObject2).hasNext()) {
            return;
          }
          localObject3 = (a_)((Iterator)localObject2).next();
          b_ localb_ = new b_(((a_)localObject3).d, ((a_)localObject3).b, null);
          lb.b_ localb_1 = ((lb)localObject1).c(localb_);
          Object localObject4;
          Object localObject5;
          do
          {
            localObject4 = localb_1;
            if (!bool2)
            {
              if (((a_)localObject3).c)
              {
                if (localObject4 == null) {
                  break label333;
                }
                if (bool1) {
                  break label340;
                }
                if (((b_)((lb.b_)localObject4).c()).a >= ((a_)localObject3).e) {
                  break label333;
                }
                localObject5 = (b_)((lb.b_)localObject4).c();
                if (!bool2)
                {
                  if (((b_)localObject5).c != null)
                  {
                    d3 = Math.max(((a_)localObject3).d, ((b_)localObject5).a);
                    d4 = Math.min(((a_)localObject3).e, ((b_)((lb.b_)localObject4).a().c()).a);
                    a(((a_)localObject3).b, ((b_)localObject5).c, paramBoolean, d3, d4);
                  }
                  localObject4 = ((lb.b_)localObject4).a();
                }
                if (!bool1) {
                  break;
                }
              }
              localObject4 = ((lb)localObject1).c(new b_(((a_)localObject3).e, ((a_)localObject3).b, null));
            }
            localObject5 = ((b_)((lb.b_)localObject4).c()).c;
            localb_2 = ((lb)localObject1).a(localb_1, localb_);
          } while (bool2);
          if (!bool2) {
            if (localb_1 == localObject4) {
              localObject4 = localb_2;
            }
          }
          localb_3 = ((lb)localObject1).a((lb.b_)localObject4, new b_(((a_)localObject3).e, (e)localObject5, null));
        } while (localb_2.a() == localb_3);
        ((lb)localObject1).a(localb_2.a(), localb_3.b());
        if (bool2) {
          break;
        }
      } while (!bool1);
    }
    
    protected abstract void a(e parame1, e parame2, boolean paramBoolean, double paramDouble1, double paramDouble2);
    
    private static class a_
      implements Comparable
    {
      final double a;
      final e b;
      final boolean c;
      final double d;
      final double e;
      
      public a_(double paramDouble1, e parame, boolean paramBoolean, double paramDouble2, double paramDouble3)
      {
        this.a = paramDouble1;
        this.b = parame;
        this.c = paramBoolean;
        this.d = paramDouble2;
        this.e = paramDouble3;
      }
      
      public int compareTo(Object paramObject)
      {
        boolean bool = ld.E;
        a_ locala_ = (a_)paramObject;
        int i = l.a(this.a, locala_.a);
        if (!bool) {
          if (i != 0) {
            return i;
          }
        }
        if (!bool) {
          if (this.c != locala_.c)
          {
            if (!bool) {}
            return this.c ? 1 : -1;
          }
        }
        return 0;
      }
    }
    
    private static final class b_
      implements Comparable
    {
      final double a;
      final e c;
      
      private b_(double paramDouble, e parame)
      {
        this.a = paramDouble;
        this.c = parame;
      }
      
      public int compareTo(Object paramObject)
      {
        return l.a(this.a, ((b_)paramObject).a);
      }
      
      public String toString()
      {
        return "SweepEntry{coordinate=" + this.a + ", node=" + this.c + '}';
      }
      
      b_(double paramDouble, e parame, z.27 param27)
      {
        this(paramDouble, parame);
      }
    }
  }
  
  private static final class i_
    implements Comparable
  {
    final double a;
    private final z.q_ c;
    private final z.q_ d;
    
    public int compareTo(Object paramObject)
    {
      return l.a(this.a, ((i_)paramObject).a);
    }
    
    protected i_(double paramDouble, z.q_ paramq_1, z.q_ paramq_2)
    {
      this.a = paramDouble;
      this.c = paramq_1;
      this.d = paramq_2;
    }
    
    public qb a()
    {
      return null;
    }
    
    public ve a(boolean paramBoolean)
    {
      return new z.27(this, 0.5D, null, paramBoolean, this.a, null);
    }
  }
}



/* Location:           E:\idea\

 * Qualified Name:     a.j.z

 * JD-Core Version:    0.7.0.1

 */